diff options
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/config/console.yml | 3 | ||||
-rw-r--r-- | phpBB/includes/acp/acp_extensions.php | 22 | ||||
-rw-r--r-- | phpBB/language/en/acp/common.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/console/command/extension/command.php | 6 | ||||
-rw-r--r-- | phpBB/phpbb/console/command/extension/disable.php | 1 | ||||
-rw-r--r-- | phpBB/phpbb/console/command/extension/enable.php | 1 | ||||
-rw-r--r-- | phpBB/phpbb/console/command/extension/purge.php | 1 |
7 files changed, 36 insertions, 2 deletions
diff --git a/phpBB/config/console.yml b/phpBB/config/console.yml index d32befa15e..1305a12101 100644 --- a/phpBB/config/console.yml +++ b/phpBB/config/console.yml @@ -62,6 +62,7 @@ services: class: phpbb\console\command\extension\disable arguments: - @ext.manager + - @log tags: - { name: console.command } @@ -69,6 +70,7 @@ services: class: phpbb\console\command\extension\enable arguments: - @ext.manager + - @log tags: - { name: console.command } @@ -76,6 +78,7 @@ services: class: phpbb\console\command\extension\purge arguments: - @ext.manager + - @log tags: - { name: console.command } diff --git a/phpBB/includes/acp/acp_extensions.php b/phpBB/includes/acp/acp_extensions.php index 21a1909ac1..1fb2d2df26 100644 --- a/phpBB/includes/acp/acp_extensions.php +++ b/phpBB/includes/acp/acp_extensions.php @@ -26,16 +26,18 @@ class acp_extensions private $config; private $template; private $user; + private $log; function main() { // Start the page - global $config, $user, $template, $request, $phpbb_extension_manager, $db, $phpbb_root_path, $phpEx; + global $config, $user, $template, $request, $phpbb_extension_manager, $db, $phpbb_root_path, $phpEx, $phpbb_log; $this->db = $db; $this->config = $config; $this->template = $template; $this->user = $user; + $this->log = $phpbb_log; $user->add_lang(array('install', 'acp/extensions', 'migrator')); @@ -123,6 +125,11 @@ class acp_extensions trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING); } + if ($phpbb_extension_manager->enabled($ext_name)) + { + redirect($this->u_action); + } + try { while ($phpbb_extension_manager->enable_step($ext_name)) @@ -135,6 +142,7 @@ class acp_extensions meta_refresh(0, $this->u_action . '&action=enable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('enable.' . $ext_name)); } } + $this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_ENABLE', time(), array($ext_name)); } catch (\phpbb\db\migration\exception $e) { @@ -164,6 +172,11 @@ class acp_extensions break; case 'disable': + if (!$phpbb_extension_manager->enabled($ext_name)) + { + redirect($this->u_action); + } + while ($phpbb_extension_manager->disable_step($ext_name)) { // Are we approaching the time limit? If so we want to pause the update and continue after refreshing @@ -174,6 +187,7 @@ class acp_extensions meta_refresh(0, $this->u_action . '&action=disable&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('disable.' . $ext_name)); } } + $this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_DISABLE', time(), array($ext_name)); $this->tpl_name = 'acp_ext_disable'; @@ -197,6 +211,11 @@ class acp_extensions break; case 'delete_data': + if ($phpbb_extension_manager->enabled($ext_name)) + { + redirect($this->u_action); + } + try { while ($phpbb_extension_manager->purge_step($ext_name)) @@ -209,6 +228,7 @@ class acp_extensions meta_refresh(0, $this->u_action . '&action=delete_data&ext_name=' . urlencode($ext_name) . '&hash=' . generate_link_hash('delete_data.' . $ext_name)); } } + $this->log->add('admin', $user->data['user_id'], $user->ip, 'LOG_EXT_PURGE', time(), array($ext_name)); } catch (\phpbb\db\migration\exception $e) { diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 6f6a5f901f..8014ee64f1 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -777,4 +777,8 @@ $lang = array_merge($lang, array( 'LOG_WORD_ADD' => '<strong>Added word censor</strong><br />» %s', 'LOG_WORD_DELETE' => '<strong>Deleted word censor</strong><br />» %s', 'LOG_WORD_EDIT' => '<strong>Edited word censor</strong><br />» %s', + + 'LOG_EXT_ENABLE' => '<strong>Extension enabled</strong><br />» %s', + 'LOG_EXT_DISABLE' => '<strong>Extension disabled</strong><br />» %s', + 'LOG_EXT_PURGE' => '<strong>Extension’s data deleted</strong><br />» %s', )); diff --git a/phpBB/phpbb/console/command/extension/command.php b/phpBB/phpbb/console/command/extension/command.php index edde7ce2e2..72325ce768 100644 --- a/phpBB/phpbb/console/command/extension/command.php +++ b/phpBB/phpbb/console/command/extension/command.php @@ -13,9 +13,13 @@ abstract class command extends \phpbb\console\command\command /** @var \phpbb\extension\manager */ protected $manager; - function __construct(\phpbb\extension\manager $manager) + /** @var \phpbb\log\log */ + protected $log; + + public function __construct(\phpbb\extension\manager $manager, \phpbb\log\log $log) { $this->manager = $manager; + $this->log = $log; parent::__construct(); } diff --git a/phpBB/phpbb/console/command/extension/disable.php b/phpBB/phpbb/console/command/extension/disable.php index e4de70ca34..ceaf168108 100644 --- a/phpBB/phpbb/console/command/extension/disable.php +++ b/phpBB/phpbb/console/command/extension/disable.php @@ -40,6 +40,7 @@ class disable extends command } else { + $this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_DISABLE', time(), array($name)); $output->writeln("<info>Successfully disabled extension $name</info>"); return 0; } diff --git a/phpBB/phpbb/console/command/extension/enable.php b/phpBB/phpbb/console/command/extension/enable.php index ee7dae76aa..757f19005e 100644 --- a/phpBB/phpbb/console/command/extension/enable.php +++ b/phpBB/phpbb/console/command/extension/enable.php @@ -35,6 +35,7 @@ class enable extends command if ($this->manager->enabled($name)) { + $this->log->add('admin', ANONYMOUS, '', 'LOG_EXTENSION_ENABLE', time(), array($name)); $output->writeln("<info>Successfully enabled extension $name</info>"); return 0; } diff --git a/phpBB/phpbb/console/command/extension/purge.php b/phpBB/phpbb/console/command/extension/purge.php index c2e1d2928c..0342d116f5 100644 --- a/phpBB/phpbb/console/command/extension/purge.php +++ b/phpBB/phpbb/console/command/extension/purge.php @@ -40,6 +40,7 @@ class purge extends command } else { + $this->log->add('admin', ANONYMOUS, '', 'LOG_EXT_PURGE', time(), array($name)); $output->writeln("<info>Successfully purge extension $name</info>"); return 0; } |