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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 delta 6103 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 A)&Kwi 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 );