From 9d0275eb7a9124b1d90c1ab676a0b52262d1d7d1 Mon Sep 17 00:00:00 2001 From: coderkun Date: Tue, 24 Jun 2014 20:55:32 +0200 Subject: [PATCH] add option to disable mail notifications for users (issue #330) --- controllers/CharactersController.inc | 26 ++++---- controllers/QuestsController.inc | 31 +++++---- controllers/UsersController.inc | 34 ++++++---- locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 19197 -> 19313 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 68 +++++++++++--------- models/UsersModel.inc | 17 ++--- 6 files changed, 99 insertions(+), 77 deletions(-) diff --git a/controllers/CharactersController.inc b/controllers/CharactersController.inc index f8d9558a..1ba51fde 100644 --- a/controllers/CharactersController.inc +++ b/controllers/CharactersController.inc @@ -644,18 +644,20 @@ foreach($characters as &$character) { $moderator = $this->Users->getUserById($character['user_id']); - \hhu\z\Utils::sendMail( - $moderator['email'], - 'characterregistration', - true, - array( - $moderator, - \hhu\z\controllers\SeminaryController::$seminary, - \hhu\z\controllers\IntermediateController::$user, - $newCharacter - ), - $this->linker - ); + if($moderator['mailing']) { + \hhu\z\Utils::sendMail( + $moderator['email'], + 'characterregistration', + true, + array( + $moderator, + \hhu\z\controllers\SeminaryController::$seminary, + \hhu\z\controllers\IntermediateController::$user, + $newCharacter + ), + $this->linker + ); + } } } catch(\hhu\z\exceptions\MailingException $e) { diff --git a/controllers/QuestsController.inc b/controllers/QuestsController.inc index 81a5f1b9..50a8ae63 100644 --- a/controllers/QuestsController.inc +++ b/controllers/QuestsController.inc @@ -879,19 +879,21 @@ foreach($moderators as &$moderator) { $user = $this->Users->getUserById($moderator['user_id']); - \hhu\z\Utils::sendMail( - $user['email'], - 'charactersubmission', - true, - array( - $user, - $seminary, - $questgroup, - $quest, - $character - ), - $this->linker - ); + if($user['mailing']) { + \hhu\z\Utils::sendMail( + $user['email'], + 'charactersubmission', + true, + array( + $user, + $seminary, + $questgroup, + $quest, + $character + ), + $this->linker + ); + } } } catch(\hhu\z\exceptions\MailingException $e) { @@ -912,6 +914,9 @@ { // Get user $user = $this->Users->getUserById($character['user_id']); + if(!$user['mailing']) { + return; + } // Send notification mail try { diff --git a/controllers/UsersController.inc b/controllers/UsersController.inc index e7abce23..b4cff872 100644 --- a/controllers/UsersController.inc +++ b/controllers/UsersController.inc @@ -454,6 +454,7 @@ $prename = $user['prename']; $surname = $user['surname']; $email = $user['email']; + $mailing = $user['mailing']; $fields = array('username', 'prename', 'surname', 'email'); $validation = array(); @@ -482,6 +483,7 @@ if($this->Users->emailExists($email, $user['id'])) { $validation = $this->Validation->addValidationResult($validation, 'email', 'exist', true); } + $mailing = !is_null($this->request->getPostParam('mailing')); // Save changes if($validation === true) @@ -490,10 +492,11 @@ $this->Users->editUser( $user['id'], (count(array_intersect(array('admin','moderator'),\hhu\z\controllers\IntermediateController::$user['roles'])) > 0) ? $this->request->getPostParam('username') : $user['username'], - $this->request->getPostParam('prename'), - $this->request->getPostParam('surname'), - $this->request->getPostParam('email'), - $this->request->getPostParam('password') + $prename, + $surname, + $email, + $password, + $mailing ); // Redirect to entry @@ -517,6 +520,7 @@ $this->set('prename', $prename); $this->set('surname', $surname); $this->set('email', $email); + $this->set('mailing', $mailing); $this->set('validation', $validation); $this->set('validationSettings', $validationSettings); } @@ -577,16 +581,18 @@ try { foreach($moderators as &$moderator) { - \hhu\z\Utils::sendMail( - $moderator['email'], - 'userregistration', - true, - array( - $moderator, - $user - ), - $this->linker - ); + if($moderator['mailing']) { + \hhu\z\Utils::sendMail( + $moderator['email'], + 'userregistration', + true, + array( + $moderator, + $user + ), + $this->linker + ); + } } } catch(\hhu\z\exceptions\MailingException $e) { diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index d1af25d925d665a370bef74f873f8516f07a85be..e9eb3dcdeeb56352bb928df892c9bfd1c5ef8698 100644 GIT binary patch delta 6203 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 diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.po b/locale/de_DE/LC_MESSAGES/The Legend of Z.po index 231b3bef..9a4df4af 100644 --- a/locale/de_DE/LC_MESSAGES/The Legend of Z.po +++ b/locale/de_DE/LC_MESSAGES/The Legend of Z.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: The Legend of Z\n" -"POT-Creation-Date: 2014-06-19 21:14+0100\n" -"PO-Revision-Date: 2014-06-19 21:14+0100\n" +"POT-Creation-Date: 2014-06-24 20:53+0100\n" +"PO-Revision-Date: 2014-06-24 20:53+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: de_DE\n" @@ -21,9 +21,9 @@ msgstr "" #: controllers/UsersController.inc:312 views/ajax/characters/index.tpl:10 #: views/ajax/users/index.tpl:10 views/html/characters/index.tpl:39 #: views/html/characters/manage.tpl:35 views/html/characters/manage.tpl:50 -#: views/html/characters/manage.tpl:58 views/html/users/index.tpl:26 -#: views/html/users/manage.tpl:28 views/html/users/manage.tpl:41 -#: views/html/users/manage.tpl:49 +#: views/html/characters/manage.tpl:58 views/html/userroles/user.tpl:5 +#: views/html/users/index.tpl:26 views/html/users/manage.tpl:28 +#: views/html/users/manage.tpl:41 views/html/users/manage.tpl:49 msgid "Admin" msgstr "Administrator" @@ -31,9 +31,9 @@ msgstr "Administrator" #: controllers/UsersController.inc:318 views/ajax/characters/index.tpl:12 #: views/ajax/users/index.tpl:12 views/html/characters/index.tpl:40 #: views/html/characters/manage.tpl:36 views/html/characters/manage.tpl:51 -#: views/html/characters/manage.tpl:59 views/html/users/index.tpl:27 -#: views/html/users/manage.tpl:29 views/html/users/manage.tpl:42 -#: views/html/users/manage.tpl:50 +#: views/html/characters/manage.tpl:59 views/html/userroles/user.tpl:7 +#: views/html/users/index.tpl:27 views/html/users/manage.tpl:29 +#: views/html/users/manage.tpl:42 views/html/users/manage.tpl:50 msgid "Moderator" msgstr "Moderator" @@ -41,9 +41,9 @@ msgstr "Moderator" #: controllers/UsersController.inc:324 views/ajax/characters/index.tpl:14 #: views/ajax/users/index.tpl:14 views/html/characters/index.tpl:41 #: views/html/characters/manage.tpl:37 views/html/characters/manage.tpl:53 -#: views/html/characters/manage.tpl:61 views/html/users/index.tpl:28 -#: views/html/users/manage.tpl:30 views/html/users/manage.tpl:44 -#: views/html/users/manage.tpl:52 +#: views/html/characters/manage.tpl:61 views/html/userroles/user.tpl:9 +#: views/html/users/index.tpl:28 views/html/users/manage.tpl:30 +#: views/html/users/manage.tpl:44 views/html/users/manage.tpl:52 msgid "User" msgstr "Benutzer" @@ -63,7 +63,7 @@ msgstr "Neuer Lösungsvorschlag" msgid "Character submission approved" msgstr "Lösungsvorschlag bewertet" -#: controllers/QuestsController.inc:736 +#: controllers/QuestsController.inc:740 #: questtypes/submit/html/submission.tpl:30 views/html/quests/quest.tpl:45 #: views/html/quests/submissions.tpl:30 msgid "solved" @@ -194,42 +194,42 @@ msgid "unsolved" msgstr "Leider falsch!" #: views/ajax/quests/index.tpl:9 views/html/quests/index.tpl:27 -#: views/html/quests/index.tpl:57 +#: views/html/quests/index.tpl:59 msgid "Questtype Empty" msgstr "Leere Aufgabe" #: views/ajax/quests/index.tpl:11 views/html/quests/index.tpl:29 -#: views/html/quests/index.tpl:59 +#: views/html/quests/index.tpl:61 msgid "Questtype bossfight" msgstr "Boss-Fight" #: views/ajax/quests/index.tpl:13 views/html/quests/index.tpl:31 -#: views/html/quests/index.tpl:61 +#: views/html/quests/index.tpl:63 msgid "Questtype choiceinput" msgstr "Auswahleingabe" #: views/ajax/quests/index.tpl:15 views/html/quests/index.tpl:33 -#: views/html/quests/index.tpl:63 +#: views/html/quests/index.tpl:65 msgid "Questtype crossword" msgstr "Kreuzworträtsel" #: views/ajax/quests/index.tpl:17 views/html/quests/index.tpl:35 -#: views/html/quests/index.tpl:65 +#: views/html/quests/index.tpl:67 msgid "Questtype dragndrop" msgstr "Drag&Drop" #: views/ajax/quests/index.tpl:19 views/html/quests/index.tpl:37 -#: views/html/quests/index.tpl:67 +#: views/html/quests/index.tpl:69 msgid "Questtype multiplechoice" msgstr "Multiple Choice" #: views/ajax/quests/index.tpl:21 views/html/quests/index.tpl:39 -#: views/html/quests/index.tpl:69 +#: views/html/quests/index.tpl:71 msgid "Questtype submit" msgstr "Abgabeaufgabe" #: views/ajax/quests/index.tpl:23 views/html/quests/index.tpl:41 -#: views/html/quests/index.tpl:71 +#: views/html/quests/index.tpl:73 msgid "Questtype textinput" msgstr "Texteingabe" @@ -242,7 +242,7 @@ msgstr "Texteingabe" #: views/html/characters/character.tpl:77 #: views/html/characters/character.tpl:83 #: views/html/characters/character.tpl:89 -#: views/html/characters/character.tpl:103 views/html/quests/index.tpl:73 +#: views/html/characters/character.tpl:103 views/html/quests/index.tpl:75 #: views/html/seminaries/index.tpl:29 views/html/seminarybar/index.tpl:7 #: views/html/seminarybar/index.tpl:43 #, php-format @@ -701,10 +701,10 @@ msgstr "Die XP-Angabe ist ungültig" #: views/html/library/edit.tpl:121 views/html/library/edit.tpl:122 #: views/html/questgroups/create.tpl:73 views/html/questgroups/create.tpl:74 #: views/html/questgroups/edit.tpl:61 views/html/questgroups/edit.tpl:62 -#: views/html/questgroups/questgroup.tpl:82 -#: views/html/seminaries/create.tpl:68 views/html/seminaries/create.tpl:69 -#: views/html/seminaries/edit.tpl:70 views/html/seminaries/edit.tpl:71 -#: views/html/seminaries/seminary.tpl:69 +#: views/html/questgroups/questgroup.tpl:82 views/html/quests/index.tpl:47 +#: views/html/quests/index.tpl:48 views/html/seminaries/create.tpl:68 +#: views/html/seminaries/create.tpl:69 views/html/seminaries/edit.tpl:70 +#: views/html/seminaries/edit.tpl:71 views/html/seminaries/seminary.tpl:69 msgid "Title" msgstr "Titel" @@ -775,7 +775,7 @@ msgstr "Die Datei ist ungültig" #: views/html/charactergroupsquests/manage.tpl:66 #: views/html/charactertypes/manage.tpl:52 views/html/library/edit.tpl:46 -#: views/html/library/edit.tpl:86 views/html/users/edit.tpl:103 +#: views/html/library/edit.tpl:86 views/html/users/edit.tpl:105 msgid "save" msgstr "speichern" @@ -903,12 +903,12 @@ msgstr "Registrierungsdatum" msgid "Sort list" msgstr "Liste sortieren" -#: views/html/characters/index.tpl:52 views/html/quests/index.tpl:80 +#: views/html/characters/index.tpl:52 views/html/quests/index.tpl:82 #: views/html/users/index.tpl:36 msgid "Show more" msgstr "Weitere anzeigen" -#: views/html/characters/index.tpl:53 views/html/quests/index.tpl:81 +#: views/html/characters/index.tpl:53 views/html/quests/index.tpl:83 #: views/html/users/index.tpl:37 msgid "Show all" msgstr "Alle anzeigen" @@ -1251,6 +1251,10 @@ msgstr "Text für falsche Antwort" msgid "Task" msgstr "Aufgabe" +#: views/html/quests/index.tpl:13 +msgid "Filter" +msgstr "Filter" + #: views/html/quests/index.tpl:16 views/html/quests/index.tpl:23 msgid "all" msgstr "alle" @@ -1259,11 +1263,11 @@ msgstr "alle" msgid "Questtype" msgstr "Questtyp" -#: views/html/quests/index.tpl:48 +#: views/html/quests/index.tpl:50 msgid "Apply filters" msgstr "Filter anwenden" -#: views/html/quests/index.tpl:54 views/html/quests/index.tpl:109 +#: views/html/quests/index.tpl:56 views/html/quests/index.tpl:111 msgid "open submissions" msgstr "offene Lösungsvorschläge" @@ -1528,6 +1532,10 @@ msgstr "Soll der Benutzer „%s“ (%s) wirklich gelöscht werden?" msgid "Edit user" msgstr "Benutzer bearbeiten" +#: views/html/users/edit.tpl:103 +msgid "Mail notifications" +msgstr "E‑Mailbenachrichtigungen" + #: views/html/users/index.tpl:6 msgid "Create new user" msgstr "Neuen Benutzer erstellen" diff --git a/models/UsersModel.inc b/models/UsersModel.inc index 101cc60a..36135b93 100644 --- a/models/UsersModel.inc +++ b/models/UsersModel.inc @@ -76,7 +76,7 @@ return $this->db->query( sprintf( - 'SELECT id, created, username, url, surname, prename, email '. + 'SELECT id, created, username, url, surname, prename, email, mailing '. 'FROM users '. 'ORDER BY %s %s '. (!empty($limit) ? sprintf('LIMIT %d, %d', $offset, $limit) : null), @@ -87,7 +87,7 @@ break; case 'role': return $this->db->query( - 'SELECT DISTINCT users.id, users.created, users.username, users.url, users.surname, users.prename, users.email '. + 'SELECT DISTINCT users.id, users.created, users.username, users.url, users.surname, users.prename, users.email, users.mailing '. 'FROM users '. 'LEFT JOIN users_userroles ON users_userroles.user_id = users.id '. 'LEFT JOIN userroles ON userroles.id = users_userroles.user_id '. @@ -111,7 +111,7 @@ public function getUsersWithRole($userrole) { return $this->db->query( - 'SELECT users.id, users.created, users.username, users.url, users.surname, users.prename, users.email '. + 'SELECT users.id, users.created, users.username, users.url, users.surname, users.prename, users.email, users.mailing'. 'FROM users '. 'LEFT JOIN users_userroles ON users_userroles.user_id = users.id '. 'LEFT JOIN userroles ON userroles.id = users_userroles.userrole_id '. @@ -134,7 +134,7 @@ { // Get user $user = $this->db->query( - 'SELECT id, created, username, url, surname, prename, email '. + 'SELECT id, created, username, url, surname, prename, email, mailing '. 'FROM users '. 'WHERE id = ?', 'i', @@ -160,7 +160,7 @@ { // Get user $user = $this->db->query( - 'SELECT id, created, username, url, surname, prename, email '. + 'SELECT id, created, username, url, surname, prename, email, mailing '. 'FROM users '. 'WHERE url = ?', 's', @@ -305,21 +305,22 @@ * @param string $email Changed e‑mail-address of user * @param string $password Changed plaintext password of user */ - public function editUser($userId, $username, $prename, $surname, $email, $password) + public function editUser($userId, $username, $prename, $surname, $email, $password, $mailing) { $this->db->setAutocommit(false); try { // Update user data $this->db->query( 'UPDATE users '. - 'SET username = ?, url = ?, prename = ?, surname = ?, email = ? '. + 'SET username = ?, url = ?, prename = ?, surname = ?, email = ?, mailing = ? '. 'WHERE id = ?', - 'sssssi', + 'sssssii', $username, \nre\core\Linker::createLinkParam($username), $prename, $surname, $email, + $mailing, $userId );