? .DS_Store
? system-perms_.241667_12.patch.txt
? system-perms_.241667_13.patch
? sites/default/files
? sites/default/private
? sites/default/settings.php
Index: modules/block/block.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.test,v
retrieving revision 1.25
diff -p -u -p -r1.25 block.test
--- modules/block/block.test	3 Aug 2009 03:04:33 -0000	1.25
+++ modules/block/block.test	25 Aug 2009 22:47:43 -0000
@@ -215,7 +215,7 @@ class NonDefaultBlockAdmin extends Drupa
    * Test non-default theme admin.
    */
   function testNonDefaultBlockAdmin() {
-    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration', 'administer site appearance'));
     $this->drupalLogin($admin_user);
     $this->drupalPost('admin/appearance', array('status[stark]' => 1), t('Save configuration'));
     $this->drupalGet('admin/structure/block/list/stark');
@@ -240,7 +240,7 @@ class NewDefaultThemeBlocks extends Drup
    */
   function testNewDefaultThemeBlocks() {
     // Create administrative user.
-    $admin_user = $this->drupalCreateUser(array('administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer site appearance'));
     $this->drupalLogin($admin_user);
 
     // Ensure no other theme's blocks are in the block table yet.
@@ -274,7 +274,7 @@ class BlockAdminThemeTestCase extends Dr
   public static function getInfo() {
     return array(
       'name' => 'Admin theme block admin accessibility',
-      'description' => "Check whether the block administer page for a disabled theme acccessible if and only if it's the admin theme.",
+      'description' => "Check whether the block administer page for a disabled theme accessible if and only if it's the admin theme.",
       'group' => 'Block',
     );
   }
@@ -284,7 +284,7 @@ class BlockAdminThemeTestCase extends Dr
    */
   function testAdminTheme() {
     // Create administrative user.
-    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration'));
+    $admin_user = $this->drupalCreateUser(array('administer blocks', 'administer site configuration','administer site appearance'));
     $this->drupalLogin($admin_user);
 
     // Ensure that access to block admin page is denied when theme is disabled.
Index: modules/system/system.install
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.install,v
retrieving revision 1.379
diff -p -u -p -r1.379 system.install
--- modules/system/system.install	24 Aug 2009 00:14:22 -0000	1.379
+++ modules/system/system.install	25 Aug 2009 22:47:44 -0000
@@ -2458,6 +2458,30 @@ function system_update_7036() {
 }
 
 /**
+ * Split the 'administer site appearance' permission from 'administer site
+ * configuration'.
+ */
+function system_update_7037() {
+  $ret = array();
+  // Get existing roles that can 'administer site configuration'.
+  $rids = array();
+  $rids = db_query("SELECT rid FROM {role_permission} WHERE permission = :perm", array(':perm' => 'administer site configuration'))->fetchCol();
+  // None found.
+  if (empty($rids)) {
+    return $ret;
+  }
+  $insert = db_insert('role_permission')->fields(array('rid', 'permission'));
+  foreach ($rids as $rid) {
+    $insert->values(array(
+    'rid' => $rid,
+    'permission' => 'administer site appearance',
+    ));
+  }
+  $insert->execute();
+  return $ret;
+}
+
+/**
  * @} End of "defgroup updates-6.x-to-7.x"
  * The next series of updates should start at 8000.
  */
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.774
diff -p -u -p -r1.774 system.module
--- modules/system/system.module	25 Aug 2009 21:53:48 -0000	1.774
+++ modules/system/system.module	25 Aug 2009 22:47:45 -0000
@@ -214,7 +214,11 @@ function system_permission() {
   return array(
     'administer site configuration' => array(
       'title' => t('Administer site configuration'),
-      'description' => t('Configure site-wide settings such as module or theme administration settings.'),
+      'description' => t('Configure module settings.'),
+    ),
+    'administer site information' => array(
+      'title' => t('Administer site information'),
+      'description' => t('Manage basic site information, such as the site name, slogan, and e-mail address.'),
     ),
     'administer actions' => array(
       'title' => t('Administer actions'),
@@ -238,7 +242,11 @@ function system_permission() {
     ),
     'select different theme' => array(
       'title' => t('Select different theme'),
-      'description' => t('Select a theme other than the default theme set by the site administrator.'),
+      'description' => t('Select a personal theme other than the default theme set by the site administrator.'),
+    ),
+    'administer site appearance' => array(
+      'title' => t('Administer site appearance'),
+      'description' => t('Choose the site theme and manage theme settings.'),
     ),
     'block IP addresses' => array(
       'title' => t('Block IP addresses'),
@@ -592,7 +600,7 @@ function system_menu() {
     'description' => 'Select and configure your site theme.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('system_themes_form'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer site appearance'),
     'position' => 'left',
     'weight' => -6,
     'file' => 'system.admin.inc',
@@ -607,7 +615,7 @@ function system_menu() {
   $items['admin/appearance/settings'] = array(
     'title' => 'Configure',
     'page arguments' => array('system_theme_settings'),
-    'access arguments' => array('administer site configuration'),
+    'access arguments' => array('administer site appearance'),
     'type' => MENU_LOCAL_TASK,
     'file' => 'system.admin.inc',
   );
@@ -1329,7 +1337,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') && ($theme->status || $theme->name == variable_get('admin_theme', 0));
+  return user_access('administer site appearance') && ($theme->status || $theme->name == variable_get('admin_theme', 0));
 }
 
 /**
Index: modules/system/system.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.test,v
retrieving revision 1.73
diff -p -u -p -r1.73 system.test
--- modules/system/system.test	25 Aug 2009 10:27:15 -0000	1.73
+++ modules/system/system.test	25 Aug 2009 22:47:45 -0000
@@ -530,7 +530,7 @@ class AccessDeniedTestCase extends Drupa
     parent::setUp();
 
     // Create an administrative user.
-    $this->admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer blocks'));
+    $this->admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer blocks', 'administer site information'));
     $this->drupalLogin($this->admin_user);
   }
 
@@ -607,7 +607,7 @@ class PageNotFoundTestCase extends Drupa
     parent::setUp();
 
     // Create an administrative user.
-    $this->admin_user = $this->drupalCreateUser(array('administer site configuration'));
+    $this->admin_user = $this->drupalCreateUser(array('administer site configuration', 'administer site information'));
     $this->drupalLogin($this->admin_user);
   }
 
@@ -859,7 +859,7 @@ class FrontPageTestCase extends DrupalWe
     parent::setUp('system_test');
 
     // Create admin user, log in admin user, and create one node.
-    $this->admin_user = $this->drupalCreateUser(array('access content', 'administer site configuration'));
+    $this->admin_user = $this->drupalCreateUser(array('access content', 'administer site configuration', 'administer site information'));
     $this->drupalLogin($this->admin_user);
     $this->node_path = "node/" . $this->drupalCreateNode(array('promote' => 1))->nid;
 
@@ -1042,7 +1042,7 @@ class SystemThemeFunctionalTest extends 
   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 site configuration', 'bypass node access', 'administer site appearance'));
     $this->drupalLogin($this->admin_user);
     $this->node = $this->drupalCreateNode();
   }
