mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/15951] Add core.mcp_delete_topic_modify_permissions
Allow modification to permissions when deleting topics This allows $check_permission to be false in the phpbb_check_ids function call PHPBB3-15951
This commit is contained in:
parent
d7ccd22383
commit
f4a1d4ef02
1 changed files with 26 additions and 4 deletions
|
@ -881,16 +881,38 @@ function mcp_restore_topic($topic_ids)
|
||||||
*/
|
*/
|
||||||
function mcp_delete_topic($topic_ids, $is_soft = false, $soft_delete_reason = '', $action = 'delete_topic')
|
function mcp_delete_topic($topic_ids, $is_soft = false, $soft_delete_reason = '', $action = 'delete_topic')
|
||||||
{
|
{
|
||||||
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container, $phpbb_log;
|
global $auth, $user, $db, $phpEx, $phpbb_root_path, $request, $phpbb_container, $phpbb_log, $phpbb_dispatcher;
|
||||||
|
|
||||||
$check_permission = ($is_soft) ? 'm_softdelete' : 'm_delete';
|
$forum_id = $request->variable('f', 0);
|
||||||
if (!phpbb_check_ids($topic_ids, TOPICS_TABLE, 'topic_id', array($check_permission)))
|
$check_permission = ($is_soft) ? ['m_softdelete'] : ['m_delete'];
|
||||||
|
/**
|
||||||
|
* This event allows you to modify the current user's checked permissions when deleting a topic
|
||||||
|
*
|
||||||
|
* @event core.mcp_delete_topic_modify_permissions
|
||||||
|
* @var array topic_ids The array of topic IDs to be deleted
|
||||||
|
* @var int forum_id The current forum ID
|
||||||
|
* @var bool is_soft Boolean designating whether we're soft deleting or not
|
||||||
|
* @var string soft_delete_reason The reason we're soft deleting
|
||||||
|
* @var string action The current delete action
|
||||||
|
* @var array check_permission The array with a permission to check for, can be set to false to not check them
|
||||||
|
* @since 3.2.6-RC1
|
||||||
|
*/
|
||||||
|
$vars = array(
|
||||||
|
'topic_ids',
|
||||||
|
'forum_id',
|
||||||
|
'is_soft',
|
||||||
|
'soft_delete_reason',
|
||||||
|
'action',
|
||||||
|
'check_permission',
|
||||||
|
);
|
||||||
|
extract($phpbb_dispatcher->trigger_event('core.mcp_delete_topic_modify_permissions', compact($vars)));
|
||||||
|
|
||||||
|
if (!phpbb_check_ids($topic_ids, TOPICS_TABLE, 'topic_id', $check_permission))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$redirect = $request->variable('redirect', build_url(array('action', 'quickmod')));
|
$redirect = $request->variable('redirect', build_url(array('action', 'quickmod')));
|
||||||
$forum_id = $request->variable('f', 0);
|
|
||||||
|
|
||||||
$s_hidden_fields = array(
|
$s_hidden_fields = array(
|
||||||
'topic_id_list' => $topic_ids,
|
'topic_id_list' => $topic_ids,
|
||||||
|
|
Loading…
Add table
Reference in a new issue