diff options
Diffstat (limited to 'modules/notification/helpers/notification.php')
-rw-r--r-- | modules/notification/helpers/notification.php | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/modules/notification/helpers/notification.php b/modules/notification/helpers/notification.php index 150616ab..9a40b0b9 100644 --- a/modules/notification/helpers/notification.php +++ b/modules/notification/helpers/notification.php @@ -20,7 +20,7 @@ class notification { static function get_subscription($item_id, $user=null) { if (empty($user)) { - $user = user::active(); + $user = identity::active_user(); } return ORM::factory("subscription") @@ -31,7 +31,7 @@ class notification { static function is_watching($item, $user=null) { if (empty($user)) { - $user = user::active(); + $user = identity::active_user(); } return ORM::factory("subscription") @@ -44,7 +44,7 @@ class notification { static function add_watch($item, $user=null) { if ($item->is_album()) { if (empty($user)) { - $user = user::active(); + $user = identity::active_user(); } $subscription = ORM::factory("subscription"); $subscription->item_id = $item->id; @@ -56,7 +56,7 @@ class notification { static function remove_watch($item, $user=null) { if ($item->is_album()) { if (empty($user)) { - $user = user::active(); + $user = identity::active_user(); } $subscription = ORM::factory("subscription") @@ -67,8 +67,7 @@ class notification { } static function get_subscribers($item) { - // @todo only return distinct email addresses - $subscriber_ids = array(); + $subscriber_ids = array(); foreach (ORM::factory("subscription") ->select("user_id") ->join("items", "subscriptions.item_id", "items.id") @@ -79,12 +78,14 @@ class notification { $subscriber_ids[] = $subscriber->user_id; } - $users = user::get_user_list(array("in" => array("id", $subscriber_ids), - "where" => array("email IS NOT" => null))); + if (empty($subscriber_ids)) { + return array(); + } + $users = identity::get_user_list($subscriber_ids); $subscribers = array(); foreach ($users as $user) { - if (access::user_can($user, "view", $item)) { + if (access::user_can($user, "view", $item) && !empty($user->email)) { $subscribers[$user->email] = 1; } } |