summaryrefslogtreecommitdiff
path: root/modules/system
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-12-01 22:30:31 +0000
committerDries Buytaert <dries@buytaert.net>2009-12-01 22:30:31 +0000
commitbdf018696fa40eef6f20316a5c1927bfb240f0eb (patch)
treea8b4b0a1ca587a1e41c5cefdb2e2f896c3dd5c29 /modules/system
parent48377c459b7663cc29e137573d4357823c6a6d98 (diff)
downloadbrdo-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.module26
-rw-r--r--modules/system/system.test9
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();
}