diff options
-rw-r--r-- | app/Model/Notification.php | 11 | ||||
-rw-r--r-- | tests/units/NotificationTest.php | 13 |
2 files changed, 24 insertions, 0 deletions
diff --git a/app/Model/Notification.php b/app/Model/Notification.php index 0a80e335..d2fcf525 100644 --- a/app/Model/Notification.php +++ b/app/Model/Notification.php @@ -35,6 +35,17 @@ class Notification extends Base */ public function getUsersWithNotification($project_id, array $exclude_users = array()) { + if ($this->projectPermission->isEverybodyAllowed($project_id)) { + + return $this->db + ->table(User::TABLE) + ->columns(User::TABLE.'.id', User::TABLE.'.username', User::TABLE.'.name', User::TABLE.'.email') + ->eq('notifications_enabled', '1') + ->neq('email', '') + ->notin(User::TABLE.'.id', $exclude_users) + ->findAll(); + } + return $this->db ->table(ProjectPermission::TABLE) ->columns(User::TABLE.'.id', User::TABLE.'.username', User::TABLE.'.name', User::TABLE.'.email') diff --git a/tests/units/NotificationTest.php b/tests/units/NotificationTest.php index de0ea9d9..1c8fb6e5 100644 --- a/tests/units/NotificationTest.php +++ b/tests/units/NotificationTest.php @@ -58,6 +58,7 @@ class NotificationTest extends Base $this->assertEquals(1, $p->create(array('name' => 'UnitTest1'))); $this->assertEquals(2, $p->create(array('name' => 'UnitTest2'))); + $this->assertEquals(3, $p->create(array('name' => 'UnitTest3', 'is_everybody_allowed' => 1))); // Email + Notifications enabled $this->assertTrue($u->create(array('username' => 'user1', 'email' => 'user1@here', 'notifications_enabled' => 1))); @@ -116,5 +117,17 @@ class NotificationTest extends Base $this->assertNotEmpty($users); $this->assertEquals(1, count($users)); $this->assertEquals('user3@here', $users[0]['email']); + + // Project #3 allow everybody + $users = $n->getUsersList(3); + $this->assertNotEmpty($users); + $this->assertEquals(1, count($users)); + $this->assertEquals('user1@here', $users[0]['email']); + + $users = $n->getUsersWithNotification(3); + $this->assertNotEmpty($users); + $this->assertEquals(2, count($users)); + $this->assertEquals('user1@here', $users[0]['email']); + $this->assertEquals('user3@here', $users[1]['email']); } } |