From c1264fdbc53fb4ef94d7fb863d726bcb201f261f Mon Sep 17 00:00:00 2001 From: greiser Date: Fri, 24 Jul 2026 12:46:48 +0200 Subject: [PATCH 1/2] Remove option to send personal user data to MUMIE servers The admin setting to share a user's first name, last name, or e-mail address with MUMIE servers is removed. SSO now only ever transmits a pseudonymous user id. Includes a migration that purges the corresponding setting from existing installations --- changelog.md | 4 ++ controllers/admin.php | 17 ------ locale/en/LC_MESSAGES/MumieTaskPlugin.mo | Bin 6267 -> 6017 bytes locale/en/LC_MESSAGES/MumieTaskPlugin.po | 27 +-------- locale/en/LC_MESSAGES/MumieTaskPlugin.pot | 31 ++-------- ...3_remove_personal_data_sharing_options.php | 43 ++++++++++++++ plugin.manifest | 2 +- services/SSOService.php | 14 +---- views/admin/index.php | 56 ------------------ 9 files changed, 57 insertions(+), 137 deletions(-) create mode 100644 migrations/03_remove_personal_data_sharing_options.php diff --git a/changelog.md b/changelog.md index 5b419e9..faf66d3 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,10 @@ All important changes to this plugin will be documented in this file. +## [v1.6] - 2026-07-21 +### Removed +- Removed the admin option to share a user's first name, last name or e-mail address with MUMIE servers. No personal user data is sent for SSO anymore, only a pseudonymous user id. + ## [v1.5] - 2021-10-22 ### Added - Ungraded MUMIE Tasks are now supported in Stud.IP. They represent ungraded links to MUMIE articles. diff --git a/controllers/admin.php b/controllers/admin.php index d7793c7..b312f6b 100644 --- a/controllers/admin.php +++ b/controllers/admin.php @@ -52,23 +52,6 @@ public function index_action() $this->servers = MumieServer::findBySQL("server_id > 0"); } - /** - * This function is used to save changes in the privacy settings. - * - * @return void - */ - public function privacy_action() - { - if (Request::isPost()) { - $config = Config::get(); - $config->store(MUMIE_SHARE_FIRSTNAME, Request::get('share_firstname')); - $config->store(MUMIE_SHARE_LASTNAME, Request::get('share_lastname')); - $config->store(MUMIE_SHARE_EMAIL, Request::get('share_email')); - PageLayout::postSuccess(dgettext('MumieTaskPlugin', 'Änderungen gespeichert') . '!'); - } - $this->redirect('admin/index'); - } - /** * Display a form for creation of MUMIE server or save it (If called by a post request). * diff --git a/locale/en/LC_MESSAGES/MumieTaskPlugin.mo b/locale/en/LC_MESSAGES/MumieTaskPlugin.mo index 9492768bba5933a4a32a90094ab10727fd637692..4c2bb4568cb12a7043d1d23c9fe9ab55d9668971 100644 GIT binary patch delta 1664 zcmXxkOGs2v9LMpal{#wq7@t`>KFS{2J1tWu^HB@MN_#*Nje0F;e2|%>;#e&VLs|?9 zQIHTVk~T3Rge?TAsDwx%Xp^-`3flCLpcZ|9s7DQbWzY{R!$hi-bWK|i+RXY9wL^tKykaW6XPbq|(f753sWoI>@R$}Ea- z9l9CcoTXAv!zgy+Z_L4V-tNO;)JhVfjmgJc%*10@fnB%~pCNNKuTc|thgxYQ5B1#1 zg|1B|s=qvpW_;tOl8n{38kG?7224UNAPrq1#_UAB zU(c*G@M%;g8d3dvQU7;6mi()7g9fc|2w9A|j~eK){o*99;Ql$P!#Ak+X6*J)cKa7R zLHl>Cz)DVD84jY(&@_6`#VT|0T0HsRLS>AGeEfg~817uO6gBfs)bl>viI1=lKj9fn zNiZfIyHEp+pfdRf)qfPLqiTw9GuEOGV~>xDQZ;}%cnh_{C#V%pAm_-uLUs7wzW<8) ztQJsbCW5?bOR`a!+k)(ZDZ#Z^W4B*G_0x^&-#0`>TW|;I%Zwt~GvjvqOVos>QDb(ZkR<&Km^BEdY2L9YM_viU@5fK z{;O;vw3kaoCs@T5ye?icLFsoByNL=y>0T=PsbmrS%9}jGp*_-mru%EcPR8b!b#`=l z&U;-`r)A2|ds@#~9j*?~Wvj{j2ga+K Au>b%7 delta 1916 zcmZA1U1*zC9LMp~m!)mo+O4&4;Il-Y zCv9g2OZ7sT2!f#(0|i9|cO%1y7f#ew@S;P#ks%0kxCqtGjTuxpv7=#;F}tui6-kAJ_7rOh$~U!^7BsNAVU+pvGsh9$!X{Tf%01 z9oOLnjN&qC+?S|%u3(cf1#>Oz_!TwrpP0o6vrXYVPT&eYgYC?+h-Yy(Mw#t?+=u#n z9{ceH9KlbKg-nE9Ok*2roQHc@-<+Z`NJj}D#osWGql}8-=XeHhpiVZs+L$=zaTC6a zL%4!#u!#p}FdI-CiQyqUj*7r}bGa8!sGBSs`inrmHwX$R>p0`UA#|YAD+c0@e+2TL;kehV1b50`zC6^50EkD zI&Q~5kb7rhghd-$31=_fYd*4Bx*(4sE_e-JxGlsVdZy7=^S2 zNsHNx8?YzrpF~Y`0=0mT%KaiLMK2+HG_Rm8-8*6bhp3HRMBSlfT#rAXF5$n(1`4LV zy|RHVs0n*eq3lCVxDU0{!=X>0az2aN&`IP@mA{I2q0)3GRYfPgr`$5;UQ`4hq;mN3 zA+>%vyt))Bny{wasyuY^-Bg8I=}^(>cT#m~<#>!bPSs}rU-rmo2ueal?D~vRF(42D{iJLcMnmy@a59Svpa0xWI&DLKdT-uWg=Iqqi)V- zf<$UAmoFY@c)l?{;ikR#{$$d(L10VE4P!OqcGhN`skC)wY>?aGELbm*vd$xX#QI5n z-f=U|#Pr12aD2-8^VWA}EmNiwPv;oyCm9fAJhp zU21JQRaJUxZEtnmq@SL56VDdEZJvn?mv>VdXj!P)`e*^I*=HWPFeORYERA9jPB!&=32ZQpDhN&A&IYmT_yoHYkiZiY=e Jfje)L=0DT>-TD9k diff --git a/locale/en/LC_MESSAGES/MumieTaskPlugin.po b/locale/en/LC_MESSAGES/MumieTaskPlugin.po index 6d342ab..d68694b 100644 --- a/locale/en/LC_MESSAGES/MumieTaskPlugin.po +++ b/locale/en/LC_MESSAGES/MumieTaskPlugin.po @@ -145,36 +145,15 @@ msgstr "MUMIE server configuration" msgid "Server hinzufügen" msgstr "Add server" -#: views/admin/index.php:55 -msgid "Datenschutz" -msgstr "Privacy" - -#: views/admin/index.php:59 -msgid "" -"Legen Sie fest, welche Nutzerdaten an MUMIE-Server geschickt werden sollen." -msgstr "Select which user data should be shared with MUMIE servers." - -#: views/admin/index.php:63 views/admin/index.php:115 +#: views/admin/index.php:115 msgid "Einstellung" msgstr "Settings" -#: views/admin/index.php:66 views/admin/index.php:118 +#: views/admin/index.php:118 msgid "Wert" msgstr "Value" -#: views/admin/index.php:72 -msgid "Vorname" -msgstr "First name" - -#: views/admin/index.php:83 -msgid "Nachname" -msgstr "Last name" - -#: views/admin/index.php:94 -msgid "E-Mail-Addresse" -msgstr "E-Mail" - -#: views/admin/index.php:104 views/admin/index.php:144 +#: views/admin/index.php:144 #: templates/ServerForm.php:51 templates/TaskForm.php:201 msgid "Speichern" msgstr "Save" diff --git a/locale/en/LC_MESSAGES/MumieTaskPlugin.pot b/locale/en/LC_MESSAGES/MumieTaskPlugin.pot index ff521b8..8b3ba0b 100644 --- a/locale/en/LC_MESSAGES/MumieTaskPlugin.pot +++ b/locale/en/LC_MESSAGES/MumieTaskPlugin.pot @@ -144,36 +144,15 @@ msgstr "" msgid "Server hinzufügen" msgstr "" -#: views/admin/index.php:55 -msgid "Datenschutz" -msgstr "" - -#: views/admin/index.php:59 -msgid "" -"Legen Sie fest, welche Nutzerdaten an MUMIE-Server geschickt werden sollen." -msgstr "" - -#: views/admin/index.php:63 views/admin/index.php:115 +#: views/admin/index.php:115 msgid "Einstellung" msgstr "" -#: views/admin/index.php:66 views/admin/index.php:118 +#: views/admin/index.php:118 msgid "Wert" msgstr "" -#: views/admin/index.php:72 -msgid "Vorname" -msgstr "" - -#: views/admin/index.php:83 -msgid "Nachname" -msgstr "" - -#: views/admin/index.php:94 -msgid "E-Mail-Addresse" -msgstr "" - -#: views/admin/index.php:104 views/admin/index.php:144 +#: views/admin/index.php:144 #: templates/ServerForm.php:51 templates/TaskForm.php:187 msgid "Speichern" msgstr "" @@ -323,8 +302,8 @@ msgstr "" #: templates/TaskForm.php:180 msgid "" -"Falls diese Option aktiviert ist, werden keine Noten, die nach dem gewÃ" -"¤hlten Datum erzielt wurden, mit StudIP synchronisiert." +"Falls diese Option aktiviert ist, werden keine Noten, die nach dem gew�" +"�hlten Datum erzielt wurden, mit StudIP synchronisiert." msgstr "" #: templates/TaskForm.php:186 diff --git a/migrations/03_remove_personal_data_sharing_options.php b/migrations/03_remove_personal_data_sharing_options.php new file mode 100644 index 0000000..c8d1db8 --- /dev/null +++ b/migrations/03_remove_personal_data_sharing_options.php @@ -0,0 +1,43 @@ +delete('MUMIE_SHARE_FIRSTNAME'); + Config::get()->delete('MUMIE_SHARE_LASTNAME'); + Config::get()->delete('MUMIE_SHARE_EMAIL'); + } + + function down() + { + Config::get()->create('MUMIE_SHARE_FIRSTNAME', array( + 'value' => 0, + 'is_default' => 0, + 'type' => 'boolean', + 'range' => 'global', + 'section' => 'global', + 'description' => 'Vornamen der User mit MUMIE-Servern teilen' + )); + Config::get()->create('MUMIE_SHARE_LASTNAME', array( + 'value' => 0, + 'is_default' => 0, + 'type' => 'boolean', + 'range' => 'global', + 'section' => 'global', + 'description' => 'Nachnamen der User mit MUMIE-Servern teilen' + )); + Config::get()->create('MUMIE_SHARE_EMAIL', array( + 'value' => 0, + 'is_default' => 0, + 'type' => 'boolean', + 'range' => 'global', + 'section' => 'global', + 'description' => 'E-Mail der User mit MUMIE-Servern teilen' + )); + } +} diff --git a/plugin.manifest b/plugin.manifest index a82d0b6..16f05e8 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,6 +1,6 @@ pluginname=MUMIE Task pluginclassname=MumieTaskPlugin -version=1.5 +version=1.6 origin=integral-learning screenshots = assets/images/screenshots diff --git a/services/SSOService.php b/services/SSOService.php index c5e252e..0a87ae4 100644 --- a/services/SSOService.php +++ b/services/SSOService.php @@ -64,8 +64,6 @@ private static function generateToken() /** * Verify a login attempt to a MUMIE server. * - * Include personal user data, if this option is enabled in the plugin settings. - * * @param string $token * @param string $hashedId * @return void @@ -77,7 +75,7 @@ public static function verifyToken($token, $hashedId) $mumieToken = MumieSSOToken::findOneBySql("the_user = ? AND token = ?", array($hashedId, $token)); $db = DBManager::get(); $userRecord = $db->query( - 'SELECT user_id, Vorname, Nachname, Email FROM auth_user_md5, mumie_id_hashes WHERE user_id = mumie_id_hashes.the_user AND mumie_id_hashes.hash = ' . $db->quote($hashedId) + 'SELECT user_id FROM auth_user_md5, mumie_id_hashes WHERE user_id = mumie_id_hashes.the_user AND mumie_id_hashes.hash = ' . $db->quote($hashedId) )->fetchOne(); if (!is_null($mumieToken) && $mumieToken->token == $token && $userRecord != null) { @@ -87,16 +85,6 @@ public static function verifyToken($token, $hashedId) } else { $response->status = "valid"; $response->userid = $hashedId; - - if (Config::get()->MUMIE_SHARE_FIRSTNAME) { - $response->firstname = $userRecord['Vorname']; - } - if (Config::get()->MUMIE_SHARE_LASTNAME) { - $response->lastname = $userRecord['Nachname']; - } - if (Config::get()->MUMIE_SHARE_EMAIL) { - $response->email = $userRecord['Email']; - } } } else { $response->status = "invalid"; diff --git a/views/admin/index.php b/views/admin/index.php index 73f99cc..23433e8 100644 --- a/views/admin/index.php +++ b/views/admin/index.php @@ -49,62 +49,6 @@ -
" method="post"> -
- - - - - - - - - - - - - - - - - - - - - -
- -
- - - -
- - - MUMIE_SHARE_FIRSTNAME ? "checked" : "";?>> -
- - - MUMIE_SHARE_LASTNAME ? "checked" : "";?>> -
- - - MUMIE_SHARE_EMAIL ? "checked" : "";?>> -
-
- -
-
-
" method="post">
From 772d845591404973df5d833d18c629638a8c360e Mon Sep 17 00:00:00 2001 From: greiser Date: Fri, 24 Jul 2026 12:47:45 +0200 Subject: [PATCH 2/2] revert version --- plugin.manifest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.manifest b/plugin.manifest index 16f05e8..a82d0b6 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,6 +1,6 @@ pluginname=MUMIE Task pluginclassname=MumieTaskPlugin -version=1.6 +version=1.5 origin=integral-learning screenshots = assets/images/screenshots