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 d1af25d9..e9eb3dcd 100644 Binary files a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo and b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo differ 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 );