From 39f7550cdba1769fb531e781702a7f4c70c8f897 Mon Sep 17 00:00:00 2001
From: Jimmy Berry <jimmy@boombatower.com>
Date: Wed, 23 Nov 2011 17:21:36 -0600
Subject: Patch 366950: "Administer Users" permission should be separate from
 "User Settings".

---
 core/modules/contact/contact.test |    4 ++--
 core/modules/user/user.module     |    6 +++++-
 core/modules/user/user.test       |    2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/core/modules/contact/contact.test b/core/modules/contact/contact.test
index 129eb30..89bb88b 100644
--- a/core/modules/contact/contact.test
+++ b/core/modules/contact/contact.test
@@ -23,7 +23,7 @@ class ContactSitewideTestCase extends DrupalWebTestCase {
    */
   function testSiteWideContact() {
     // Create and login administrative user.
-    $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer users'));
+    $admin_user = $this->drupalCreateUser(array('access site-wide contact form', 'administer contact forms', 'administer user settings'));
     $this->drupalLogin($admin_user);
 
     $flood_limit = 3;
@@ -297,7 +297,7 @@ class ContactPersonalTestCase extends DrupalWebTestCase {
     parent::setUp('contact');
 
     // Create an admin user.
-    $this->admin_user = $this->drupalCreateUser(array('administer contact forms', 'administer users'));
+    $this->admin_user = $this->drupalCreateUser(array('administer contact forms', 'administer users', 'administer user settings'));
 
     // Create some normal users with their contact forms enabled by default.
     variable_set('contact_default_status', TRUE);
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 703459d..d4c26bb 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -798,6 +798,10 @@ function user_permission() {
       'title' => t('Administer users'),
       'restrict access' => TRUE,
     ),
+    'administer user settings' => array(
+      'title' => t('Administer user settings'),
+      'restrict access' => TRUE,
+    ),
     'access user profiles' => array(
       'title' => t('View user profiles'),
     ),
@@ -1763,7 +1767,7 @@ function user_menu() {
     'description' => 'Configure default behavior of users, including registration requirements, e-mails, fields, and user pictures.',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('user_admin_settings'),
-    'access arguments' => array('administer users'),
+    'access arguments' => array('administer user settings'),
     'file' => 'user.admin.inc',
     'weight' => -10,
   );
diff --git a/core/modules/user/user.test b/core/modules/user/user.test
index 15c427b..11a448d 100644
--- a/core/modules/user/user.test
+++ b/core/modules/user/user.test
@@ -1106,7 +1106,7 @@ class UserPermissionsTestCase extends DrupalWebTestCase {
   function setUp() {
     parent::setUp();
 
-    $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'access user profiles', 'administer site configuration', 'administer modules', 'administer users'));
+    $this->admin_user = $this->drupalCreateUser(array('administer permissions', 'access user profiles', 'administer site configuration', 'administer modules', 'administer users', 'administer user settings'));
 
     // Find the new role ID - it must be the maximum.
     $all_rids = array_keys($this->admin_user->roles);
-- 
1.7.7

