1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-25 17:41:25 +02:00

Merge pull request #6541 from Crizz0/ticket/17093-master

[ticket/17093] Add ACP setting to limit access to disabled board
This commit is contained in:
Marc Alexander
2024-02-22 20:01:59 +01:00
committed by GitHub
7 changed files with 254 additions and 3 deletions

View File

@@ -0,0 +1,31 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
class add_disable_board_access_config extends \phpbb\db\migration\migration
{
public static function depends_on()
{
return [
'\phpbb\db\migration\data\v400\dev',
];
}
public function update_data()
{
return [
['config.add', ['board_disable_access', '2']],
];
}
}

View File

@@ -372,7 +372,27 @@ class user extends \phpbb\session
}
// Is board disabled and user not an admin or moderator?
if ($config['board_disable'] && !defined('IN_INSTALL') && !defined('IN_LOGIN') && !defined('SKIP_CHECK_DISABLED') && !$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))
// Check acp setting who has access: only admins "case: 0", plus global moderators "case: 1" and plus moderators "case: 2"
$board_disable_access = (int) $config['board_disable_access'];
switch ($board_disable_access)
{
case 0:
$access_disabled_board = $auth->acl_gets('a_');
break;
case 1:
$access_disabled_board = $auth->acl_gets('a_', 'm_');
break;
case 2:
default:
$access_disabled_board = $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_');
break;
}
if ($config['board_disable'] && !defined('IN_INSTALL') && !defined('IN_LOGIN') && !defined('SKIP_CHECK_DISABLED') && !$access_disabled_board)
{
if ($this->data['is_bot'])
{