From ac2367fc0b96313831011841eced3a2d69444b7b Mon Sep 17 00:00:00 2001 From: Rasmus Fuhse <fuhse@data-quest.de> Date: Fri, 5 Jul 2024 06:27:19 +0000 Subject: [PATCH] Draft: Resolve "Neues-Passwort-Mail ist falsch" Closes #4368 Merge request studip/studip!3166 --- app/controllers/new_password.php | 56 +++++++++++++++++--------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/app/controllers/new_password.php b/app/controllers/new_password.php index 1e58659ed9a..3a6e6419a9a 100644 --- a/app/controllers/new_password.php +++ b/app/controllers/new_password.php @@ -41,32 +41,36 @@ class NewPasswordController extends StudipController $users = User::findByEmail(Request::get('mail')); - $user = $users[0]; - setTempLanguage($user->id); - - // there are mutliple accounts with this mail addresses! - $subject = sprintf( - _("[Stud.IP - %s] Passwortänderung angefordert"), - Config::get()->UNI_NAME_CLEAN - ); - - $mailbody = sprintf( - _("Dies ist eine Informationsmail des Stud.IP-Systems\n" - ."(Studienbegleitender Internetsupport von Präsenzlehre)\n- %s -\n\n" - . "Für die Mail-Adresse %s wurde ein Link angefordert\n" - . "um das Passwort zurückzusetzen.\n" - . "Dieser Mail-Adresse sind jedoch mehrere Zugänge zugeordnet,\n" - . "deshalb ist es nicht möglich, das Passwort hierüber zurückzusetzen.\n" - . "Wenden sie sich bitte stattdessen an\n%s" - ), - Config::get()->UNI_NAME_CLEAN, - $users[0]->email, - $GLOBALS['UNI_CONTACT'] - ); - - StudipMail::sendMessage($user->email, $subject, $mailbody); - - restoreLanguage(); + if (count($users) === 1) { + $user = $users[0]; + } else if (count($users) > 1) { + setTempLanguage($users[0]->id); + + // there are mutliple accounts with this mail addresses! + $subject = sprintf( + _("[Stud.IP - %s] Passwortänderung angefordert"), + Config::get()->UNI_NAME_CLEAN + ); + + $mailbody = sprintf( + _("Dies ist eine Informationsmail des Stud.IP-Systems\n" + ."(Studienbegleitender Internetsupport von Präsenzlehre)\n- %s -\n\n" + . "Für die Mail-Adresse %s wurde ein Link angefordert\n" + . "um das Passwort zurückzusetzen.\n" + . "Dieser Mail-Adresse sind jedoch mehrere Zugänge zugeordnet,\n" + . "deshalb ist es nicht möglich, das Passwort hierüber zurückzusetzen.\n" + . "Wenden sie sich bitte stattdessen an\n%s" + ), + Config::get()->UNI_NAME_CLEAN, + $users[0]->email, + $GLOBALS['UNI_CONTACT'] + ); + + StudipMail::sendMessage($users[0]->email, $subject, $mailbody); + + restoreLanguage(); + } + if ($user) { // spam/abuse-protection // if there are more than 5 tokens present, do NOT send another mail -- GitLab