From 5816ae5604f53f9d568dfaee61e6c3f1db917640 Mon Sep 17 00:00:00 2001 From: Dave Shoreman Date: Thu, 24 Sep 2015 10:59:59 +0100 Subject: [PATCH] Add permissions for account dropdown items This adds permissions to Back-end Preferences and Code editor preferences in the backend. Instead of Access denied, the Backend Preferences page displays an "Unable to find the spcified settings" error. Meh... it works. --- modules/backend/ServiceProvider.php | 10 ++++++++++ modules/backend/controllers/EditorPreferences.php | 2 ++ modules/system/controllers/Settings.php | 4 ++-- modules/system/lang/en/lang.php | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php index f9c68c6a7..82d402dcb 100644 --- a/modules/backend/ServiceProvider.php +++ b/modules/backend/ServiceProvider.php @@ -110,6 +110,14 @@ class ServiceProvider extends ModuleServiceProvider 'label' => 'system::lang.permissions.manage_other_administrators', 'tab' => 'system::lang.permissions.name' ], + 'backend.manage_preferences' => [ + 'label' => 'system::lang.permissions.manage_preferences', + 'tab' => 'system::lang.permissions.name' + ], + 'backend.manage_editor' => [ + 'label' => 'system::lang.permissions.manage_editor', + 'tab' => 'system::lang.permissions.name' + ], 'backend.manage_branding' => [ 'label' => 'system::lang.permissions.manage_branding', 'tab' => 'system::lang.permissions.name' @@ -207,6 +215,7 @@ class ServiceProvider extends ModuleServiceProvider 'category' => SettingsManager::CATEGORY_MYSETTINGS, 'icon' => 'icon-laptop', 'class' => 'Backend\Models\BackendPreferences', + 'permissions' => ['backend.manage_preferences'], 'order' => 510, 'context' => 'mysettings' ], @@ -216,6 +225,7 @@ class ServiceProvider extends ModuleServiceProvider 'category' => SettingsManager::CATEGORY_MYSETTINGS, 'icon' => 'icon-code', 'url' => Backend::URL('backend/editorpreferences'), + 'permissions' => ['backend.manage_editor'], 'order' => 520, 'context' => 'mysettings' ], diff --git a/modules/backend/controllers/EditorPreferences.php b/modules/backend/controllers/EditorPreferences.php index baf6a4452..91151931e 100644 --- a/modules/backend/controllers/EditorPreferences.php +++ b/modules/backend/controllers/EditorPreferences.php @@ -20,6 +20,8 @@ class EditorPreferences extends Controller public $formConfig = 'config_form.yaml'; + public $requiredPermissions = ['backend.manage_editor']; + /** * Constructor. */ diff --git a/modules/system/controllers/Settings.php b/modules/system/controllers/Settings.php index 3db05e392..b9eb356b8 100644 --- a/modules/system/controllers/Settings.php +++ b/modules/system/controllers/Settings.php @@ -30,8 +30,8 @@ class Settings extends Controller { parent::__construct(); - if ($this->action == 'mysettings') { - $this->requiredPermissions = null; + if ($this->action == 'backend_preferences') { + $this->requiredPermissions = ['backend.manage_preferences']; } $this->addCss('/modules/system/assets/css/settings/settings.css', 'core'); diff --git a/modules/system/lang/en/lang.php b/modules/system/lang/en/lang.php index 0a814a82f..d07542036 100644 --- a/modules/system/lang/en/lang.php +++ b/modules/system/lang/en/lang.php @@ -316,6 +316,8 @@ return [ 'manage_mail_templates' => 'Manage mail templates', 'manage_mail_settings' => 'Manage mail settings', 'manage_other_administrators' => 'Manage other administrators', + 'manage_preferences' => 'Manage backend preferences', + 'manage_editor' => 'Manage code editor preferences', 'view_the_dashboard' => 'View the dashboard', 'manage_branding' => 'Customize the back-end' ]