mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-06 15:45:34 +02:00
[ticket/12493] Fix sql query for selection of users that have disabled PM
This fixes a bug where a user A could not send a PM to user B when both users allowed other users to send them a PM. More precisely, it fixes the selection of users that either are inactive or have disabled private messages. PHPBB3-12493
This commit is contained in:
parent
324daf72fe
commit
0166493a89
@ -1226,6 +1226,8 @@ function handle_message_list_actions(&$address_list, &$error, $remove_u, $remove
|
|||||||
// Check for disallowed recipients
|
// Check for disallowed recipients
|
||||||
if (!empty($address_list['u']))
|
if (!empty($address_list['u']))
|
||||||
{
|
{
|
||||||
|
$can_ignore_allow_pm = $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_');
|
||||||
|
|
||||||
// Administrator deactivated users check and we need to check their
|
// Administrator deactivated users check and we need to check their
|
||||||
// PM status (do they want to receive PM's?)
|
// PM status (do they want to receive PM's?)
|
||||||
// Only check PM status if not a moderator or admin, since they
|
// Only check PM status if not a moderator or admin, since they
|
||||||
@ -1233,14 +1235,11 @@ function handle_message_list_actions(&$address_list, &$error, $remove_u, $remove
|
|||||||
$sql = 'SELECT user_id, user_allow_pm
|
$sql = 'SELECT user_id, user_allow_pm
|
||||||
FROM ' . USERS_TABLE . '
|
FROM ' . USERS_TABLE . '
|
||||||
WHERE ' . $db->sql_in_set('user_id', array_keys($address_list['u'])) . '
|
WHERE ' . $db->sql_in_set('user_id', array_keys($address_list['u'])) . '
|
||||||
AND (user_type = ' . USER_INACTIVE . '
|
AND (
|
||||||
AND user_inactive_reason = ' . INACTIVE_MANUAL . ')';
|
(user_type = ' . USER_INACTIVE . '
|
||||||
|
AND user_inactive_reason = ' . INACTIVE_MANUAL . ')
|
||||||
$can_ignore_allow_pm = ($auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'));
|
' . ($can_ignore_allow_pm ? '' : ' OR user_allow_pm = 0') . '
|
||||||
if (!$can_ignore_allow_pm)
|
)';
|
||||||
{
|
|
||||||
$sql .= ' OR user_allow_pm = 0';
|
|
||||||
}
|
|
||||||
|
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user