mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-29 11:10:18 +02:00
[ticket/17093] Add new board settings option for disable board access
PHPBB3-17093
This commit is contained in:
@@ -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\v33x;
|
||||
|
||||
class add_disable_board_access_config extends \phpbb\db\migration\migration
|
||||
{
|
||||
static public function depends_on()
|
||||
{
|
||||
return [
|
||||
'\phpbb\db\migration\data\v33x\v339',
|
||||
];
|
||||
}
|
||||
|
||||
public function update_data()
|
||||
{
|
||||
return [
|
||||
['config.add', ['board_disable_access', '2']],
|
||||
];
|
||||
}
|
||||
}
|
@@ -372,7 +372,23 @@ 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"
|
||||
$disable_board_access = (int) $config['add_disable_board_access_config'];
|
||||
|
||||
switch ($disable_board_access) {
|
||||
case 0:
|
||||
$access_disabled_board = $auth->acl_gets('a_');
|
||||
break;
|
||||
case 1:
|
||||
$access_disabled_board = $auth->acl_gets('a_') && $auth->acl_getf_global('m_');
|
||||
break;
|
||||
default:
|
||||
case 2:
|
||||
$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'])
|
||||
{
|
||||
|
Reference in New Issue
Block a user