diff options
author | Dries Buytaert <dries@buytaert.net> | 2009-12-01 22:30:31 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2009-12-01 22:30:31 +0000 |
commit | bdf018696fa40eef6f20316a5c1927bfb240f0eb (patch) | |
tree | a8b4b0a1ca587a1e41c5cefdb2e2f896c3dd5c29 /modules/system | |
parent | 48377c459b7663cc29e137573d4357823c6a6d98 (diff) | |
download | brdo-bdf018696fa40eef6f20316a5c1927bfb240f0eb.tar.gz brdo-bdf018696fa40eef6f20316a5c1927bfb240f0eb.tar.bz2 |
- Patch #446666 by cweagans: split 'administer site configuration' into more granular permissions.
Diffstat (limited to 'modules/system')
-rw-r--r-- | modules/system/system.module | 26 | ||||
-rw-r--r-- | modules/system/system.test | 9 |
2 files changed, 21 insertions, 14 deletions
diff --git a/modules/system/system.module b/modules/system/system.module index e960d83a2..67c54e7ec 100644 --- a/modules/system/system.module +++ b/modules/system/system.module @@ -204,9 +204,15 @@ function system_theme() { */ function system_permission() { return array( + 'administer modules' => array( + 'title' => t('Administer modules'), + ), 'administer site configuration' => array( 'title' => t('Administer site configuration'), ), + 'administer themes' => array( + 'title' => t('Administer themes'), + ), 'administer software updates' => array( 'title' => t('Run software updates'), ), @@ -582,7 +588,7 @@ function system_menu() { 'title' => 'Appearance', 'description' => 'Select and configure your site theme.', 'page callback' => 'system_themes_page', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer themes'), 'position' => 'left', 'weight' => -6, 'file' => 'system.admin.inc', @@ -597,21 +603,21 @@ function system_menu() { $items['admin/appearance/enable'] = array( 'title' => 'Enable theme', 'page callback' => 'system_theme_enable', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer themes'), 'type' => MENU_CALLBACK, 'file' => 'system.admin.inc', ); $items['admin/appearance/disable'] = array( 'title' => 'Disable theme', 'page callback' => 'system_theme_disable', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer themes'), 'type' => MENU_CALLBACK, 'file' => 'system.admin.inc', ); $items['admin/appearance/default'] = array( 'title' => 'Set default theme', 'page callback' => 'system_theme_default', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer themes'), 'type' => MENU_CALLBACK, 'file' => 'system.admin.inc', ); @@ -620,7 +626,7 @@ function system_menu() { 'description' => 'Configure default and theme specific settings.', 'page callback' => 'drupal_get_form', 'page arguments' => array('system_theme_settings'), - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer themes'), 'type' => MENU_LOCAL_TASK, 'file' => 'system.admin.inc', ); @@ -661,7 +667,7 @@ function system_menu() { 'description' => 'Enable or disable add-on modules for your site.', 'page callback' => 'drupal_get_form', 'page arguments' => array('system_modules'), - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer modules'), 'file' => 'system.admin.inc', 'type' => MENU_LOCAL_TASK, 'weight' => 10, @@ -672,19 +678,19 @@ function system_menu() { ); $items['admin/config/modules/list/confirm'] = array( 'title' => 'List', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, ); $items['admin/config/modules/uninstall'] = array( 'title' => 'Uninstall', 'page arguments' => array('system_modules_uninstall'), - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer modules'), 'type' => MENU_LOCAL_TASK, 'file' => 'system.admin.inc', ); $items['admin/config/modules/uninstall/confirm'] = array( 'title' => 'Uninstall', - 'access arguments' => array('administer site configuration'), + 'access arguments' => array('administer modules'), 'type' => MENU_CALLBACK, 'file' => 'system.admin.inc', ); @@ -1471,7 +1477,7 @@ function blocked_ip_load($iid) { * Menu item access callback - only admin or enabled themes can be accessed. */ function _system_themes_access($theme) { - return user_access('administer site configuration') && drupal_theme_access($theme); + return user_access('administer themes') && drupal_theme_access($theme); } /** diff --git a/modules/system/system.test b/modules/system/system.test index 27c327675..ff43b97ec 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -10,7 +10,7 @@ class ModuleTestCase extends DrupalWebTestCase { function setUp() { parent::setUp('system_test'); - $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration')); + $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer modules')); $this->drupalLogin($this->admin_user); } @@ -1023,6 +1023,7 @@ class SystemMainContentFallback extends DrupalWebTestCase { $this->admin_user = $this->drupalCreateUser(array( 'access administration pages', 'administer site configuration', + 'administer modules', 'administer blocks', 'administer nodes', )); @@ -1050,7 +1051,7 @@ class SystemMainContentFallback extends DrupalWebTestCase { // At this point, no region is filled and fallback should be triggered. $this->drupalGet('admin/config/system/site-information'); - $this->assertField('site_name', t('Admin interface still availble.')); + $this->assertField('site_name', t('Admin interface still available.')); // Fallback should not trigger when another module is handling content. $this->drupalGet('system-test/main-content-handling'); @@ -1071,7 +1072,7 @@ class SystemMainContentFallback extends DrupalWebTestCase { // Request a user* page and see if it is displayed. $this->drupalLogin($this->web_user); $this->drupalGet('user/' . $this->web_user->uid . '/edit'); - $this->assertField('mail', t('User interface still availble.')); + $this->assertField('mail', t('User interface still available.')); // Enable the block module again. $this->drupalLogin($this->admin_user); @@ -1176,7 +1177,7 @@ class SystemThemeFunctionalTest extends DrupalWebTestCase { function setUp() { parent::setUp(); - $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer site configuration', 'bypass node access')); + $this->admin_user = $this->drupalCreateUser(array('access administration pages', 'administer themes', 'bypass node access')); $this->drupalLogin($this->admin_user); $this->node = $this->drupalCreateNode(); } |