From 0ad1eca4c904e7cd8178a445c1cab233f9309321 Mon Sep 17 00:00:00 2001 From: Murtaza Sultani Date: Wed, 2 Oct 2024 14:28:02 +0000 Subject: =?UTF-8?q?Resolve=20"Besseres=20Betreffpr=C3=A4fix=20f=C3=BCr=20E?= =?UTF-8?q?-Mails"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #4529 Merge request studip/studip!3404 --- app/controllers/new_password.php | 6 ++-- db/migrations/6.0.20_tic_4529.php | 63 +++++++++++++++++++++++++++++++++++++++ lib/classes/UserManagement.php | 24 +++++---------- lib/messaging.inc.php | 2 +- 4 files changed, 74 insertions(+), 21 deletions(-) create mode 100644 db/migrations/6.0.20_tic_4529.php diff --git a/app/controllers/new_password.php b/app/controllers/new_password.php index 3a6e641..8b38568 100644 --- a/app/controllers/new_password.php +++ b/app/controllers/new_password.php @@ -47,10 +47,8 @@ class NewPasswordController extends StudipController 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 - ); + $prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' '); + $subject = $prefix . _('Passwortänderung angefordert'); $mailbody = sprintf( _("Dies ist eine Informationsmail des Stud.IP-Systems\n" diff --git a/db/migrations/6.0.20_tic_4529.php b/db/migrations/6.0.20_tic_4529.php new file mode 100644 index 0000000..74c74f0 --- /dev/null +++ b/db/migrations/6.0.20_tic_4529.php @@ -0,0 +1,63 @@ +fetchColumn("SELECT `value` FROM `config_values` WHERE `field` = ?", ["MAIL_USE_SUBJECT_PREFIX"]); + if (!$MAIL_USE_SUBJECT_PREFIX) { + $MAIL_USE_SUBJECT_PREFIX = $db->fetchColumn("SELECT `value` FROM `config` WHERE `field` = ?", ["MAIL_USE_SUBJECT_PREFIX"]); + } + + $value = ''; + if ($MAIL_USE_SUBJECT_PREFIX) { + $UNI_NAME_CLEAN = $db->fetchColumn("SELECT `value` FROM `config_values` WHERE `field` = ?", ["UNI_NAME_CLEAN"]); + + $value = $UNI_NAME_CLEAN ? sprintf('[Stud.IP - %s]', $UNI_NAME_CLEAN) : '[Stud.IP]'; + } + + $db->execute( + "INSERT IGNORE INTO `config` VALUES (:field, :value, :type, :range, :section, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), :desc)", + [ + 'field' => 'MAIL_SUBJECT_PREFIX', + 'value' => $value, + 'type' => 'string', + 'range' => 'global', + 'section' => 'global', + 'desc' => 'Stellt dem Titel von per Mail versandten Nachrichten' + ] + ); + + $db->execute( + "DELETE `config`, `config_values` FROM `config` LEFT JOIN `config_values` USING(`field`) WHERE `field` = ?", + ["MAIL_USE_SUBJECT_PREFIX"] + ); + } + + public function down() + { + DBManager::get()->execute( + "DELETE `config`, `config_values` FROM `config` LEFT JOIN `config_values` USING(`field`) WHERE `field` = ?", + ["MAIL_SUBJECT_PREFIX"] + ); + + DBManager::get()->execute( + "INSERT IGNORE INTO `config` VALUES (:field, :value, :type, :range, :section, UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), :desc)", + [ + 'field' => 'MAIL_USE_SUBJECT_PREFIX', + 'value' => '0', + 'type' => 'boolean', + 'range' => 'global', + 'section' => 'global', + 'desc' => 'Stellt dem Titel von per Mail versandten Nachrichten den Wert von UNI_NAME_CLEAN voran.' + ] + ); + } +} diff --git a/lib/classes/UserManagement.php b/lib/classes/UserManagement.php index 809d0c3..cda3ada 100644 --- a/lib/classes/UserManagement.php +++ b/lib/classes/UserManagement.php @@ -688,10 +688,8 @@ class UserManagement // new users alawys receive a link to generate a password if ($new) { - $subject = sprintf( - _("[Stud.IP - %s] Es wurde ein Zugang für sie erstellt - Setzen sie ein Passwort"), - Config::get()->UNI_NAME_CLEAN - ); + $prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' '); + $subject = $prefix . _('Es wurde ein Zugang für sie erstellt - Setzen sie ein Passwort'); $mailbody = sprintf( _("Dies ist eine Bestätigungsmail des Stud.IP-Systems\n" @@ -719,10 +717,8 @@ class UserManagement if ($user->auth_plugin !== 'standard') { // inform user, that their password cannot be reset via mail - $subject = sprintf( - _("[Stud.IP - %s] Passwortänderung angefordert"), - Config::get()->UNI_NAME_CLEAN - ); + $prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' '); + $subject = $prefix . _('Passwortänderung angefordert'); $mailbody = sprintf( _("Dies ist eine Informationsmail des Stud.IP-Systems\n" @@ -739,10 +735,8 @@ class UserManagement } else { - $subject = sprintf( - _("[Stud.IP - %s] Neues Passwort setzen"), - Config::get()->UNI_NAME_CLEAN - ); + $prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' '); + $subject = $prefix . _('Neues Passwort setzen'); $mailbody = sprintf( _("Dies ist eine Bestätigungsmail des Stud.IP-Systems\n" @@ -1307,10 +1301,8 @@ class UserManagement // include language-specific subject and mailbody setTempLanguage($this->user_data['auth_user_md5.user_id']); - $subject = sprintf( - _("[Stud.IP - %s] Passwortänderung"), - Config::get()->UNI_NAME_CLEAN - ); + $prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' '); + $subject = $prefix . _('Passwortänderung'); $mailbody = sprintf( _("Dies ist eine Informationsmail des Stud.IP-Systems\n" diff --git a/lib/messaging.inc.php b/lib/messaging.inc.php index bb1990b..2a1761e 100644 --- a/lib/messaging.inc.php +++ b/lib/messaging.inc.php @@ -177,7 +177,7 @@ class messaging setTempLanguage($rec_user_id); - $title_prefix = Config::get()->MAIL_USE_SUBJECT_PREFIX ? '[Stud.IP - ' . Config::get()->UNI_NAME_CLEAN . '] ' : ''; + $title_prefix = ltrim(Config::get()->MAIL_SUBJECT_PREFIX . ' ');; $title = $title_prefix . kill_format(str_replace(["\r", "\n"], '', $subject)); if ($snd_user_id != "____%system%____") { -- cgit v1.0