Impressum and DSGV-Stub updated

This commit is contained in:
SJost 2019-02-20 18:53:21 +01:00
parent 33c81a64c0
commit 8024a9d9f0
10 changed files with 363 additions and 39 deletions

View File

@ -236,6 +236,7 @@ ProfileHeading: Benutzereinstellungen
ProfileFor: Benutzereinstellungen für
ProfileDataHeading: Gespeicherte Benutzerdaten
ImpressumHeading: Impressum
DataProtHeading: Datenschutzerklärung
SystemMessageHeading: Uni2work Statusmeldung
SystemMessageListHeading: Uni2work Statusmeldungen
@ -418,7 +419,7 @@ MailSubmissionsUnassignedIntro n@Int courseName@Text termDesc@Text sheetName@She
MailSubjectSheetSoonInactive csh@CourseShorthand sheetName@SheetName: #{sheetName} in #{csh} kann nur noch kurze Zeit abgegeben werden
MailSheetSoonInactiveIntro courseName@Text termDesc@Text sheetName@SheetName: Abgabefirst für #{sheetName} im Kurs #{courseName} (#{termDesc}) endet in Kürze.
MailSubjectSheetInactive csh@CourseShorthand sheetName@SheetName: Abgabfrist für #{sheetName} in #{csh} abgelaufen
MailSheetInactiveIntro courseName@Text termDesc@Text sheetName@SheetName: Die Abgabefirst für #{sheetName} im Kurs #{courseName} (#{termDesc}) beendet.
MailSheetInactiveIntro courseName@Text termDesc@Text sheetName@SheetName n@Int num@Int64: Die Abgabefirst für #{sheetName} im Kurs #{courseName} (#{termDesc}) beendet. Es gab #{noneOneMoreDE n "Keine Abgaben" "Nur eine Abgabe von " (display n <> " Abgaben von ")}#{noneOneMoreDE num "" "einem Teilnehmer" (display num <> " Teilnehmern")}.
MailSubjectCorrectionsAssigned csh@CourseShorthand sheetName@SheetName: Ihnen wurden Korrekturen zu #{sheetName} in #{csh} zugeteilt
MailCorrectionsAssignedIntro courseName@Text termDesc@Text sheetName@SheetName n@Int: #{display n} #{pluralDE n "Abgabe wurde" "Abgaben wurden"} Ihnen zur Korrektur für #{sheetName} im Kurs #{courseName} (#{termDesc}) zugeteilt.
@ -569,6 +570,7 @@ InvalidRoute: Konnte URL nicht interpretieren
MenuHome: Aktuell
MenuImpressum: Impressum
MenuDataProt: Datenschutz
MenuVersion: Versionsgeschichte
MenuHelp: Hilfe
MenuProfile: Anpassen

8
routes
View File

@ -40,9 +40,13 @@
/users/#CryptoUUIDUser/hijack AdminHijackUserR POST !adminANDno-escalation
/admin/test AdminTestR GET POST
/admin/errMsg AdminErrMsgR GET POST
/impressum ImpressumR GET !free
/version VersionR GET !free
/info InfoR GET !free
/impressum ImpressumR GET !free
/info/data DataProtR GET !free
/version VersionR GET !free
/help HelpR GET POST !free
/help/lecturer InfoLecturerR GET !lecturer

View File

@ -157,6 +157,19 @@ pluralDE num singularForm pluralForm
| num == 1 = singularForm
| otherwise = pluralForm
noneOneMoreDE :: (Eq a, Num a)
=> a -- ^ Count
-> Text -- ^ None
-> Text -- ^ Singular
-> Text -- ^ Plural
-> Text
noneOneMoreDE num noneText singularForm pluralForm
| num == 0 = noneText
| num == 1 = singularForm
| otherwise = pluralForm
-- Messages creates type UniWorXMessage and RenderMessage UniWorX instance
mkMessage "UniWorX" "messages/uniworx" "de"
mkMessageVariant "UniWorX" "Campus" "messages/campus" "de"
@ -1038,13 +1051,18 @@ applySystemMessages = liftHandlerT . runDB . runConduit $ selectSource [] [] .|
-- Define breadcrumbs.
instance YesodBreadcrumbs UniWorX where
breadcrumb (AuthR _) = return ("Login" , Just HomeR)
breadcrumb HomeR = return ("Uni2work" , Nothing)
breadcrumb UsersR = return ("Benutzer" , Just HomeR)
breadcrumb AdminTestR = return ("Test" , Just HomeR)
breadcrumb (AdminUserR _) = return ("Users" , Just UsersR)
breadcrumb VersionR = return ("Impressum" , Just HomeR)
breadcrumb HelpR = return ("Hilfe" , Just HomeR)
breadcrumb (AuthR _) = return ("Login" , Just HomeR)
breadcrumb HomeR = return ("Uni2work" , Nothing)
breadcrumb UsersR = return ("Benutzer" , Just HomeR)
breadcrumb AdminTestR = return ("Test" , Just HomeR)
breadcrumb (AdminUserR _) = return ("Users" , Just UsersR)
breadcrumb InfoR = return ("Information" , Nothing)
breadcrumb ImpressumR = return ("Impressum" , Just InfoR)
breadcrumb DataProtR = return ("Datenschutz" , Just InfoR)
breadcrumb VersionR = return ("Impressum" , Just InfoR)
breadcrumb HelpR = return ("Hilfe" , Just HomeR)
breadcrumb InfoLecturerR = return ("Veranstalter" , Just HelpR)
breadcrumb ProfileR = return ("User" , Just HomeR)
@ -1116,10 +1134,18 @@ defaultLinks = fmap catMaybes . mapM runMaybeT $ -- Define the menu items of the
, menuItemModal = False
, menuItemAccessCallback' = return True
}
, return MenuItem
{ menuItemType = Footer
, menuItemLabel = MsgMenuDataProt
, menuItemIcon = Just "shield"
, menuItemRoute = SomeRoute DataProtR
, menuItemModal = False
, menuItemAccessCallback' = return True
}
, return MenuItem
{ menuItemType = Footer
, menuItemLabel = MsgMenuImpressum
, menuItemIcon = Just "book"
, menuItemIcon = Just "file-signature"
, menuItemRoute = SomeRoute ImpressumR
, menuItemModal = False
, menuItemAccessCallback' = return True

View File

@ -183,13 +183,27 @@ homeUser uid = do
$(widgetFile "homeUser")
-- (widgetFile "dsgvDisclaimer")
-- | Versionsgeschichte
getVersionR :: Handler TypedContent
getVersionR = getInfoR -- TODO
getImpressumR :: Handler TypedContent
getImpressumR = getInfoR -- TODO
-- | Impressum
getImpressumR :: Handler Html
getImpressumR = -- do
siteLayoutMsg' MsgMenuImpressum $ do
setTitleI MsgImpressumHeading
$(widgetFile "impressum")
-- | Hinweise zu Datenschutz und Aufbewahrungspflichten
getDataProtR :: Handler Html
getDataProtR = -- do
siteLayoutMsg' MsgMenuDataProt $ do
setTitleI MsgDataProtHeading
$(widgetFile "data-protection-de")
-- | Allgemeine Informationen
getInfoR :: Handler TypedContent
getInfoR = selectRep $ do
provideRep . defaultLayout $ do

View File

@ -12,6 +12,8 @@ import Handler.Utils.Mail
import Text.Hamlet
import qualified Data.CaseInsensitive as CI
import qualified Database.Esqueleto as E
dispatchNotificationSheetSoonInactive :: SheetId -> UserId -> Handler ()
dispatchNotificationSheetSoonInactive nSheet jRecipient = userMailT jRecipient $ do
(Course{..}, Sheet{..}) <- liftHandlerT . runDB $ do
@ -33,10 +35,16 @@ dispatchNotificationSheetSoonInactive nSheet jRecipient = userMailT jRecipient $
dispatchNotificationSheetInactive :: SheetId -> UserId -> Handler ()
dispatchNotificationSheetInactive nSheet jRecipient = userMailT jRecipient $ do
(Course{..}, Sheet{..}) <- liftHandlerT . runDB $ do
(Course{..}, Sheet{..}, nrSubs, nrSubmitters) <- liftHandlerT . runDB $ do
sheet <- getJust nSheet
course <- belongsToJust sheetCourse sheet
return (course, sheet)
nrSubs <- count [SubmissionSheet ==. nSheet]
(E.Value nrSubmitters:_) <- E.select . E.from $ \(subUser `E.InnerJoin` submission) -> do
E.on $ subUser E.^. SubmissionUserSubmission E.==. submission E.^. SubmissionId
E.where_ $ submission E.^. SubmissionSheet E.==. E.val nSheet
-- E.distinctOn [E.don (subUser E.^. SubmissionUserUser)] -- Not necessary due to UniqueSubmisionUser
return (E.countRows :: E.SqlExpr (E.Value Int64))
return (course, sheet, nrSubs, nrSubmitters)
setSubjectI $ MsgMailSubjectSheetInactive courseShorthand sheetName
MsgRenderer mr <- getMailMsgRenderer
@ -49,4 +57,4 @@ dispatchNotificationSheetInactive nSheet jRecipient = userMailT jRecipient $ do
addAlternatives $ do
let editNotifications = $(ihamletFile "templates/mail/editNotifications.hamlet")
providePreferredAlternative ($(ihamletFile "templates/mail/sheetInactive.hamlet") :: HtmlUrlI18n UniWorXMessage (Route UniWorX))

View File

@ -0,0 +1,194 @@
<div .container>
<section>
<h2>Stand
<h3>Version 0.91 vom 22.5.2018
<p>
Die LMU unterliegt als Körperschaft des öffentlichen Rechts dem
bayerischen Datenschutzgesetz, in einigen Bereichen dem Bundesdatenschutzgesetz,
der europäischen Datenschutzgrundverordnung und den entsprechenden Datenschutz-relevanten Artikeln einzelner Fachgesetze (Telemedien, Telekomunnikation, Arbeitsrecht, usw.).
Diese Datenschutzerklärung erfüllt gegenüber den Nutzern die Informationspflichten aus den obigen Regularien.
<div .container>
<section>
<h2>Ansprechpartner
<h3>Datenschutzbeauftragter der Ludwig-Maximilians-Universität München
<ul style="list-style-type: none">
<li>Dr. Rolf Gemmeke
<li>Geschwister-Scholl-Platz 1, 80539 München
<li>Tel.: +49 (0) 89 2180-2414
<li>
<a href="http://www.uni-muenchen.de/einrichtungen/orga_lmu/beauftragte/dschutz/index.html">
Webseite des Datenschutzbeauftragten der LMU
<h3>Aufsichtsbehörde für den Datenschutz im öffentlichen Bereich
<ul style="list-style-type: none">
<li>Bayerischer Landesbeauftragter für den Datenschutz
<li>Promenade 27
<li>91522 Ansbach
<li>Telefon: +49 (0) 981 53 1300
<li>
<a href="http://www.datenschutz-bayern.de/">
Webseite des bayerischen Datenschutzbeauftragten
<h3>Datenschutzkoordinator des Instituts für Informatik der LMU
<ul style="list-style-type: none">
<li>Robert Hofer
<li>E-Mail: dsk@ifi.lmu.de
<li>Telefon: +49 (0) 89 / 2180 - 9198
<h3>Verantwortlicher für die Verarbeitung der Daten
<ul style="list-style-type: none">
<li>Ludwig-Maximilians-Universität München
<li>Geschwister-Scholl-Platz 1
<li>80539 München
<li>Telefon: +49 (0) 89 / 2180 - 0
<li>Email: praesidium@lmu.de
<li>
<p>
Die Ludwig-Maximilians-Universität München ist eine Körperschaft des Öffentlichen Rechts.
Sie wird durch den Präsidenten Prof. Dr. Bernd Huber gesetzlich vertreten.
<h4>Verantwortlicher Fachbereich
<ul style="list-style-type: none">
<li>Rechnerbetriebsgruppe des Departments "Institut für Informatik" der Ludwig-Maximilians-Universität München
<li>Oettingenstraße 67
<li>D-80538 München
<li>E-Mail: rbg@ifi.lmu.de
<li>Telefon: +49 (0) 89 / 2180 - 9198
<div .container>
<section>
<h2>Verarbeitung persönlicher Daten
<p>
Der IT Betrieb und Organisation am Institut für Informatik wird nach dem Stand
der Technik und allgm. Empfehlungen für Sicherheitsfragen und IT Betrieb geführt.
Damit werden der Schutz persönlicher Daten, als auch der nachhaltige
Betrieb der Dienste im Rahmen der Möglichkeiten gewährleistet.
<h3>1. Protokoll des Webservers
<h4>Betroffene
Jeder Nutzer dieses Webservers ist von der Erhebung und Verarbeitung der Daten betroffen.
<h4>Welche Daten werden erhoben
Der Webserver protokolliert
<ul>
<li>Pseudonymisierte IP-Adresse des Webclients des Nutzers dieses Dienstes
<li>Datum und Uhrzeit des Abrufs eines Elementes der Webseite
<li>Adresse des abgerufenen Elementes
<li>übertragene Datenmenge
<li>Info, ob der Zugriff/Abruf erfolgreich war
<li>Art und Version des Webclients
<li>gegebenenfalls Fehlermeldungen
<li>gegebenenfalls Text einer Suchanfrage
<p>
Im Falle einer Störung oder eines Sicherheitsvorfalles wird für die Dauer des Vorfalles
die Anonymisierung der IP-Adresse aufgehoben.
<h4>Zweckbindung
<p>
Die erhobenen Daten werden nur für statistische Zwecke(anonymisiert), zur Verbesserung des Angebots,
zur Analyse, Beseitigung und Abwehr von Störungen und bei Sicherheitsvorfällen verwendet.
Nur die für den Betrieb zuständigen IT Administratoren des Instituts für Informatik
haben Zugriff auf die Daten.
<h4>Rechtliche oder vertragliche Grundlagen der Datenverarbeitung
<ul>
<li>Verpflichtung zum nachhaltigen und sicheren Betrieb von IT Diensten nach Stand der Technik (TMG, TKG, DSG, EUDGV, BayrDSG, BDSG)
<li>Rechtsprechung zur Aufbewahrungsdauer und Art von Webserverprotokollen
<li>Wahrnehmung einer Aufgabe, die im öffentlichen Interesse liegt
<h4>Auskunft
<p>Erster Ansprechspartner ist der oben aufgeführte verantwortliche Fachbereich.
<h4>Löschung
<p>
Nach sieben Tagen werden Einträge des Webserverprotokolls automatisch gelöscht. Daten die wegen einer
Störung oder eines Sicherheitsvorfalles verarbeitet werden, werden nach Ende des Vorfalls gelöscht.
<h4>Zustimmung, Berichtigung, Wiederruf, Antrag auf Löschung oder Übertragung
<p>
Eine Zustimmung zur Datenverarbeitung ist auf Grund der Art der erhobenen Daten, des Verwendungszwecks,
der automatischen Löschung und der Erhebungsgrundlagen nicht nötig (DSGVO Art.6 Abs.1 e+f).
Ein Wiederrufsrecht zur Verarbeitung, Antragsrecht auf Löschung, Antragsrecht auf Berichtigung,
Antragsrecht auf Übertragung ist wegen nicht nötiger Zustimmung zur Verarbeitung bzw. Art und Nutzung der erhobenen Daten nicht gegeben.
<h4>Beschwerderecht
<p>
Nutzer können sich generell bzgl. jeder Verarbeitung oder Weitergabe von
persönlichen Daten bei der Aufsichtbehörde beschweren.
Im Fall der LMU ist dies der oben genannte bayerische Datenschutzbeauftragte.
Ansonsten können auch alle anderen oben genannten Ansprechpartner
bzgl. Beschwerden und Nachfragen kontaktiert werden.
<h4>Verpflichtung zur Teilnahme an der Verarbeitung
<p>
Der Nutzer ist bei Nutzung dieses Dienstes verpflichtet die Daten bereitzustellen und
verarbeiten zu lassen. Wir behalten uns das Recht vor,
Nutzer, die die Daten nicht bereitstellen, von der Nutzung des Dienstes auszuschließen.
<!-- CONTINUED -->
$#
$# <h3>1. Daten der Webapplikation "Uni2Work"
$#
$# <h4>Betroffene
$# Jeder Nutzer dieses Webservers ist von der Erhebung und Verarbeitung der Daten betroffen.
$#
$# <h4>Welche Daten werden erhoben
$# Der Webserver protokolliert
$# <ul>
$# <li>Pseudonymisierte IP-Adresse des Webclients des Nutzers dieses Dienstes
$# <li>Datum und Uhrzeit des Abrufs eines Elementes der Webseite
$# <li>Adresse des abgerufenen Elementes
$# <li>übertragene Datenmenge
$# <li>Info, ob der Zugriff/Abruf erfolgreich war
$# <li>Art und Version des Webclients
$# <li>gegebenenfalls Fehlermeldungen
$# <li>gegebenenfalls Text einer Suchanfrage
$# <p>
$# Im Falle einer Störung oder eines Sicherheitsvorfalles wird für die Dauer des Vorfalles
$# die Anonymisierung der IP-Adresse aufgehoben.
$#
$# <h4>Zweckbindung
$# <p>
$# Die erhobenen Daten werden nur für statistische Zwecke(anonymisiert), zur Verbesserung des Angebots,
$# zur Analyse, Beseitigung und Abwehr von Störungen und bei Sicherheitsvorfällen verwendet.
$# Nur die für den Betrieb zuständigen IT Administratoren des Instituts für Informatik
$# haben Zugriff auf die Daten.
$#
$# <h4>Rechtliche oder vertragliche Grundlagen der Datenverarbeitung
$# <ul>
$# <li>Verpflichtung zum nachhaltigen und sicheren Betrieb von IT Diensten nach Stand der Technik (TMG, TKG, DSG, EUDGV, BayrDSG, BDSG)
$# <li>Rechtsprechung zur Aufbewahrungsdauer und Art von Webserverprotokollen
$# <li>Wahrnehmung einer Aufgabe, die im öffentlichen Interesse liegt
$#
$# <h4>Auskunft
$# <p>Erster Ansprechspartner ist der oben aufgeführte verantwortliche Fachbereich.
$#
$# <h4>Löschung
$# <p>
$# Nach sieben Tagen werden Einträge des Webserverprotokolls automatisch gelöscht. Daten die wegen einer
$# Störung oder eines Sicherheitsvorfalles verarbeitet werden, werden nach Ende des Vorfalls gelöscht.
$#
$# <h4>Zustimmung, Berichtigung, Wiederruf, Antrag auf Löschung oder Übertragung
$# <p>
$# Eine Zustimmung zur Datenverarbeitung ist auf Grund der Art der erhobenen Daten, des Verwendungszwecks,
$# der automatischen Löschung und der Erhebungsgrundlagen nicht nötig (DSGVO Art.6 Abs.1 e+f).
$# Ein Wiederrufsrecht zur Verarbeitung, Antragsrecht auf Löschung, Antragsrecht auf Berichtigung,
$# Antragsrecht auf Übertragung ist wegen nicht nötiger Zustimmung zur Verarbeitung bzw. Art und Nutzung der erhobenen Daten nicht gegeben.
$#
$# <h4>Beschwerderecht
$# <p>
$# Nutzer können sich generell bzgl. jeder Verarbeitung oder Weitergabe von
$# persönlichen Daten bei der Aufsichtbehörde beschweren.
$# Im Fall der LMU ist dies der oben genannte bayerische Datenschutzbeauftragte.
$# Ansonsten können auch alle anderen oben genannten Ansprechpartner
$# bzgl. Beschwerden und Nachfragen kontaktiert werden.
$#
$# <h4>Verpflichtung zur Teilnahme an der Verarbeitung
$# <p>
$# Der Nutzer ist bei Nutzung dieses Dienstes verpflichtet die Daten bereitzustellen und
$# verarbeiten zu lassen. Wir behalten uns das Recht vor,
$# Nutzer, die die Daten nicht bereitstellen, von der Nutzung des Dienstes auszuschließen.
$#

View File

@ -0,0 +1,96 @@
$newline never
<div .container>
<section>
<h2>Ansprechpartner
<h3>Inhalt
<ul style="list-style-type: none">
<li>Dr Steffen Jost
<li>Akademischer Rat
<li>Oettingenstraße 67
<li>D-80538 München
<li>E-Mail: #
<a href="mailto:jost@tcs.ifi.lmu.de">
jost@tcs.ifi.lmu.de
<li>Web: #
<a href="https://www.tcs.ifi.lmu.de/mitarbeiter/steffen-jost">
https://www.tcs.ifi.lmu.de/mitarbeiter/steffen-jost
<li>Telefon: +49 (0) 89 / 2180 - 9139
<h3>Jugendschutz
<ul style="list-style-type: none">
<li>Robert Hofer
<li>Leiter Rechnerbetriebsgruppe
<li>Oettingenstraße 67
<li>D-80538 München
<li>E-Mail: #
<a href="mailto:rbg@ifi.lmu.de">
rbg@ifi.lmu.de
<li>Web: #
<a href="https://www.rz.ifi.lmu.de/rbg/">
https://www.rz.ifi.lmu.de/rbg/
<li>Telefon: +49 (0) 89 / 2180 - 9198
<div .container>
<section>
<h2>Anschrift
<h3>Rechnerbetriebsgruppe des Department "Institut für Informatik" der Ludwig-Maximilians-Universität München
<ul style="list-style-type: none">
<li>Oettingenstraße 67
<li>D-80538 München
<li>E-Mail: rbg@ifi.lmu.de
<li>Web: https://www.rz.ifi.lmu.de/rbg/
<li>Telefon: +49 (0) 89 / 2180 - 9198
<p>
Die Rechnerbetriebgruppe ist eine Organisation des Department "Institut für Informatik",
welches ein Teil der Ludwig-Maximilians-Universität München ist.
Die Rechnerbetriebsgruppe wird vertreten durch ihren Leiter und unterliegt
der Aufsicht des IT Beauftragen des Vorstands des Departments.
<h3>Department "Institut für Informatik" der Ludwig-Maximilians-Universität München
<ul style="list-style-type: none">
<li>Oettingenstraße 67
<li>D-80538 München
<li>Telefon: +49 (0) 89 / 2180 - 9141
<li>E-Mail: geschaeftsstelle@ifi.lmu.de
<li>Web: https://www.ifi.lmu.de/
<p>
Das Department "Institut für Informatik" ist Teil der Ludwig-Maximilians-Universität
München. Das Department wird durch die Direktorin bzw. den Direktor des Departments vertreten.
<h3>LMU - Ludwig-Maximilians-Universität München
<ul style="list-style-type: none">
<li>Geschwister-Scholl-Platz 1
<li>80539 München<
<li>Telefon: +49 (0) 89 / 2180 - 0
<li>E-Mail: #
<a href="mailto:praesidium@lmu.de">
praesidium@lmu.de
<li>Web: #
<a href="https://www.lmu.de/">
https://www.lmu.de/
<p>
Die Ludwig-Maximilians-Universität München ist eine Körperschaft des
Öffentlichen Rechts. Sie wird durch den Präsidenten der LMU gesetzlich vertreten.
<div .container>
<section>
<h2>Umsatzsteuer-Identifikationsnummer der LMU
<p>
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz: DE 811205325
<div .container>
<section>
<h2>Zuständige Aufsichtsbehörde
<p>
Bayerisches Staatsministerium für
Bildung und Kultus, Wissenschaft und Kunst
<br>
80327 München

View File

@ -11,7 +11,7 @@ $newline never
}
<body>
<h1>
_{MsgMailSheetInactiveIntro (CI.original courseName) termDesc sheetName}
_{MsgMailSheetInactiveIntro (CI.original courseName) termDesc sheetName nrSubs nrSubmitters}
<p>
<a href=@{CSheetR tid ssh csh shn SShowR}>
#{sheetName}

View File

@ -22,26 +22,6 @@
<p #changelog>
#{changeLog}
<section>
<h2>
Impressum
<ul style="list-style-type: none">
<li>
Dr Steffen Jost
<li>
<a href="mailto:jost@tcs.ifi.lmu.de">
jost@tcs.ifi.lmu.de
<li>
Lehr- und Forschungseinheit für
Theoretische Informatik
<li>
Institut für Informatik
<li>
Ludwig-Maximilians-Universität München
<li>
Oettingenstr. 67, 80538 München
<section>
<p #gitrev>
#{gitInfo}

View File

@ -8,5 +8,5 @@
$# menuItemModal :: Bool -- ^ Should this menu item open a modal instead of being a normal link
$# menuItemIcon :: Maybe Text -- ^ Should this menu item have an icon, if yes, then the name of the icon
<a href=#{route} ##{menuIdent}>
_{SomeMessage menuItemLabel}
_{SomeMessage menuItemLabel} #
$of _