diff options
author | Marc Alexander <admin@m-a-styles.de> | 2014-08-08 16:54:23 +0200 |
---|---|---|
committer | Marc Alexander <admin@m-a-styles.de> | 2014-08-08 16:54:23 +0200 |
commit | cccd54dde8d2f7733fb44ae6e47f4ec81fa96056 (patch) | |
tree | 6527d19f95e14bf389adb6dad9ce9e4836d6ffcc /phpBB | |
parent | 80788980aa7dd4b3a849a43a94569a8b415d96db (diff) | |
download | forums-cccd54dde8d2f7733fb44ae6e47f4ec81fa96056.tar forums-cccd54dde8d2f7733fb44ae6e47f4ec81fa96056.tar.gz forums-cccd54dde8d2f7733fb44ae6e47f4ec81fa96056.tar.bz2 forums-cccd54dde8d2f7733fb44ae6e47f4ec81fa96056.tar.xz forums-cccd54dde8d2f7733fb44ae6e47f4ec81fa96056.zip |
[ticket/12742] Add check for empty $users and add method to fitting methods
The method might now return an empty array in case of an empty users array,
too. The notification types then check if the returned array is empty and
return this if it is empty and if the notification types would otherwise
carry out other operations afterwards.
PHPBB3-12742
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/phpbb/notification/type/approve_post.php | 9 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/approve_topic.php | 9 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/base.php | 5 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/bookmark.php | 12 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/post.php | 14 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/quote.php | 17 | ||||
-rw-r--r-- | phpBB/phpbb/notification/type/topic.php | 14 |
7 files changed, 13 insertions, 67 deletions
diff --git a/phpBB/phpbb/notification/type/approve_post.php b/phpBB/phpbb/notification/type/approve_post.php index 0aad19d6bf..0e258f34f0 100644 --- a/phpBB/phpbb/notification/type/approve_post.php +++ b/phpBB/phpbb/notification/type/approve_post.php @@ -81,14 +81,7 @@ class approve_post extends \phpbb\notification\type\post $users = array(); $users[$post['poster_id']] = array(''); - $auth_read = $this->auth->acl_get_list(array_keys($users), 'f_read', $post['forum_id']); - - if (empty($auth_read)) - { - return array(); - } - - return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array( + return $this->get_authenticated_recipients(array_keys($users), $post['forum_id'], array_merge($options, array( 'item_type' => self::$notification_option['id'], ))); } diff --git a/phpBB/phpbb/notification/type/approve_topic.php b/phpBB/phpbb/notification/type/approve_topic.php index e649f3920e..55f7b95b15 100644 --- a/phpBB/phpbb/notification/type/approve_topic.php +++ b/phpBB/phpbb/notification/type/approve_topic.php @@ -81,14 +81,7 @@ class approve_topic extends \phpbb\notification\type\topic $users = array(); $users[$post['poster_id']] = array(''); - $auth_read = $this->auth->acl_get_list(array_keys($users), 'f_read', $post['forum_id']); - - if (empty($auth_read)) - { - return array(); - } - - return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array( + return $this->get_authenticated_recipients(array_keys($users), $post['forum_id'], array_merge($options, array( 'item_type' => self::$notification_option['id'], ))); } diff --git a/phpBB/phpbb/notification/type/base.php b/phpBB/phpbb/notification/type/base.php index 8243a2e6a2..18204aaa03 100644 --- a/phpBB/phpbb/notification/type/base.php +++ b/phpBB/phpbb/notification/type/base.php @@ -544,6 +544,11 @@ abstract class base implements \phpbb\notification\type\type_interface */ protected function get_authenticated_recipients($users, $forum_id, $options) { + if (empty($users)) + { + return array(); + } + $users = array_unique($users); sort($users); diff --git a/phpBB/phpbb/notification/type/bookmark.php b/phpBB/phpbb/notification/type/bookmark.php index c83288cfb8..bafdd6bb0c 100644 --- a/phpBB/phpbb/notification/type/bookmark.php +++ b/phpBB/phpbb/notification/type/bookmark.php @@ -83,21 +83,13 @@ class bookmark extends \phpbb\notification\type\post } $this->db->sql_freeresult($result); - if (empty($users)) - { - return array(); - } - sort($users); + $notify_users = $this->get_authenticated_recipients($users, $post['forum_id'], $options); - $auth_read = $this->auth->acl_get_list($users, 'f_read', $post['forum_id']); - - if (empty($auth_read)) + if (empty($notify_users)) { return array(); } - $notify_users = $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], $options); - // Try to find the users who already have been notified about replies and have not read the topic since and just update their notifications $update_notifications = array(); $sql = 'SELECT n.* diff --git a/phpBB/phpbb/notification/type/post.php b/phpBB/phpbb/notification/type/post.php index 357176ec35..e772b9aa7c 100644 --- a/phpBB/phpbb/notification/type/post.php +++ b/phpBB/phpbb/notification/type/post.php @@ -123,23 +123,13 @@ class post extends \phpbb\notification\type\base } $this->db->sql_freeresult($result); - if (empty($users)) - { - return array(); - } + $notify_users = $this->get_authenticated_recipients($users, $post['forum_id'], $options); - $users = array_unique($users); - sort($users); - - $auth_read = $this->auth->acl_get_list($users, 'f_read', $post['forum_id']); - - if (empty($auth_read)) + if (empty($notify_users)) { return array(); } - $notify_users = $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], $options); - // Try to find the users who already have been notified about replies and have not read the topic since and just update their notifications $update_notifications = array(); $sql = 'SELECT n.* diff --git a/phpBB/phpbb/notification/type/quote.php b/phpBB/phpbb/notification/type/quote.php index 6e672e6fbd..89f185deda 100644 --- a/phpBB/phpbb/notification/type/quote.php +++ b/phpBB/phpbb/notification/type/quote.php @@ -102,22 +102,7 @@ class quote extends \phpbb\notification\type\post } $this->db->sql_freeresult($result); - if (empty($users)) - { - return array(); - } - sort($users); - - $auth_read = $this->auth->acl_get_list($users, 'f_read', $post['forum_id']); - - if (empty($auth_read)) - { - return array(); - } - - $notify_users = $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], $options); - - return $notify_users; + return $this->get_authenticated_recipients($users, $post['forum_id'], $options); } /** diff --git a/phpBB/phpbb/notification/type/topic.php b/phpBB/phpbb/notification/type/topic.php index 289e45bedb..c74dd4aa4e 100644 --- a/phpBB/phpbb/notification/type/topic.php +++ b/phpBB/phpbb/notification/type/topic.php @@ -111,19 +111,7 @@ class topic extends \phpbb\notification\type\base } $this->db->sql_freeresult($result); - if (empty($users)) - { - return array(); - } - - $auth_read = $this->auth->acl_get_list($users, 'f_read', $topic['forum_id']); - - if (empty($auth_read)) - { - return array(); - } - - return $this->check_user_notification_options($auth_read[$topic['forum_id']]['f_read'], $options); + return $this->get_authenticated_recipients($users, $topic['forum_id'], $options); } /** |