diff options
author | Frédéric Guillot <fred@kanboard.net> | 2014-09-19 22:08:04 +0200 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2014-09-19 22:08:04 +0200 |
commit | 95e54d1d300809cb8656c52d029f797ba5961a04 (patch) | |
tree | 44d31d492e26efb3308b70ac173baecf45b811a7 /app/Model | |
parent | 9ffa63747ae5a5ecfe8ac3e6a3276ade80e6980b (diff) |
Exclude current user in email notifications, pull-request #273)
Diffstat (limited to 'app/Model')
-rw-r--r-- | app/Model/Notification.php | 12 | ||||
-rw-r--r-- | app/Model/User.php | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/app/Model/Notification.php b/app/Model/Notification.php index 89439f37..a7dd7fc0 100644 --- a/app/Model/Notification.php +++ b/app/Model/Notification.php @@ -2,6 +2,7 @@ namespace Model; +use Core\Session; use Core\Translator; use Core\Template; use Event\TaskNotificationListener; @@ -30,15 +31,22 @@ class Notification extends Base * Get the list of users to send the notification for a given project * * @access public - * @param integer $project_id Project id + * @param integer $project_id Project id + * @param array $exlude_users List of user_id to exclude * @return array */ - public function getUsersList($project_id) + public function getUsersList($project_id, array $exclude_users = array()) { + // Exclude the connected user + if (Session::isOpen()) { + $exclude_users[] = $this->acl->getUserId(); + } + $users = $this->db->table(User::TABLE) ->columns('id', 'username', 'name', 'email') ->eq('notifications_enabled', '1') ->neq('email', '') + ->notin('id', $exclude_users) ->findAll(); foreach ($users as $index => $user) { diff --git a/app/Model/User.php b/app/Model/User.php index c1a9dcc9..54588cbe 100644 --- a/app/Model/User.php +++ b/app/Model/User.php @@ -4,6 +4,7 @@ namespace Model; use SimpleValidator\Validator; use SimpleValidator\Validators; +use Core\Session; /** * User model @@ -205,7 +206,7 @@ class User extends Base $result = $this->db->table(self::TABLE)->eq('id', $values['id'])->update($values); // If the user is connected refresh his session - if (session_id() !== '' && $_SESSION['user']['id'] == $values['id']) { + if (Session::isOpen() && $_SESSION['user']['id'] == $values['id']) { $this->updateSession(); } |