mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
[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
This commit is contained in:
parent
80788980aa
commit
cccd54dde8
7 changed files with 15 additions and 69 deletions
|
@ -81,14 +81,7 @@ class approve_post extends \phpbb\notification\type\post
|
||||||
$users = array();
|
$users = array();
|
||||||
$users[$post['poster_id']] = array('');
|
$users[$post['poster_id']] = array('');
|
||||||
|
|
||||||
$auth_read = $this->auth->acl_get_list(array_keys($users), 'f_read', $post['forum_id']);
|
return $this->get_authenticated_recipients(array_keys($users), $post['forum_id'], array_merge($options, array(
|
||||||
|
|
||||||
if (empty($auth_read))
|
|
||||||
{
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array(
|
|
||||||
'item_type' => self::$notification_option['id'],
|
'item_type' => self::$notification_option['id'],
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,14 +81,7 @@ class approve_topic extends \phpbb\notification\type\topic
|
||||||
$users = array();
|
$users = array();
|
||||||
$users[$post['poster_id']] = array('');
|
$users[$post['poster_id']] = array('');
|
||||||
|
|
||||||
$auth_read = $this->auth->acl_get_list(array_keys($users), 'f_read', $post['forum_id']);
|
return $this->get_authenticated_recipients(array_keys($users), $post['forum_id'], array_merge($options, array(
|
||||||
|
|
||||||
if (empty($auth_read))
|
|
||||||
{
|
|
||||||
return array();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->check_user_notification_options($auth_read[$post['forum_id']]['f_read'], array_merge($options, array(
|
|
||||||
'item_type' => self::$notification_option['id'],
|
'item_type' => self::$notification_option['id'],
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|
|
@ -544,6 +544,11 @@ abstract class base implements \phpbb\notification\type\type_interface
|
||||||
*/
|
*/
|
||||||
protected function get_authenticated_recipients($users, $forum_id, $options)
|
protected function get_authenticated_recipients($users, $forum_id, $options)
|
||||||
{
|
{
|
||||||
|
if (empty($users))
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
$users = array_unique($users);
|
$users = array_unique($users);
|
||||||
sort($users);
|
sort($users);
|
||||||
|
|
||||||
|
|
|
@ -83,20 +83,12 @@ class bookmark extends \phpbb\notification\type\post
|
||||||
}
|
}
|
||||||
$this->db->sql_freeresult($result);
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
if (empty($users))
|
$notify_users = $this->get_authenticated_recipients($users, $post['forum_id'], $options);
|
||||||
|
|
||||||
|
if (empty($notify_users))
|
||||||
{
|
{
|
||||||
return array();
|
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);
|
|
||||||
|
|
||||||
// Try to find the users who already have been notified about replies and have not read the topic since and just update their notifications
|
// 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();
|
$update_notifications = array();
|
||||||
|
|
|
@ -123,23 +123,13 @@ class post extends \phpbb\notification\type\base
|
||||||
}
|
}
|
||||||
$this->db->sql_freeresult($result);
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
if (empty($users))
|
$notify_users = $this->get_authenticated_recipients($users, $post['forum_id'], $options);
|
||||||
|
|
||||||
|
if (empty($notify_users))
|
||||||
{
|
{
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$users = array_unique($users);
|
|
||||||
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);
|
|
||||||
|
|
||||||
// Try to find the users who already have been notified about replies and have not read the topic since and just update their notifications
|
// 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();
|
$update_notifications = array();
|
||||||
$sql = 'SELECT n.*
|
$sql = 'SELECT n.*
|
||||||
|
|
|
@ -102,22 +102,7 @@ class quote extends \phpbb\notification\type\post
|
||||||
}
|
}
|
||||||
$this->db->sql_freeresult($result);
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
if (empty($users))
|
return $this->get_authenticated_recipients($users, $post['forum_id'], $options);
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -111,19 +111,7 @@ class topic extends \phpbb\notification\type\base
|
||||||
}
|
}
|
||||||
$this->db->sql_freeresult($result);
|
$this->db->sql_freeresult($result);
|
||||||
|
|
||||||
if (empty($users))
|
return $this->get_authenticated_recipients($users, $topic['forum_id'], $options);
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue