summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Model/Notification.php11
-rw-r--r--tests/units/NotificationTest.php13
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']);
}
}