diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index f4106fb..9846e79 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -145,14 +145,14 @@ const DRUPAL_BOOTSTRAP_LANGUAGE = 6;
const DRUPAL_BOOTSTRAP_FULL = 7;
/**
- * Role ID for anonymous users; should match what's in the "role" table.
+ * Role name for anonymous users; should match what's in the "role" table.
*/
-const DRUPAL_ANONYMOUS_RID = 1;
+const DRUPAL_ANONYMOUS_ROLE = 'anonymous_user';
/**
- * Role ID for authenticated users; should match what's in the "role" table.
+ * Role name for authenticated users; should match what's in the "role" table.
*/
-const DRUPAL_AUTHENTICATED_RID = 2;
+const DRUPAL_AUTHENTICATED_ROLE = 'authenticated_user';
/**
* The number of bytes in a kilobyte.
@@ -2111,7 +2111,7 @@ function drupal_anonymous_user() {
$user->uid = 0;
$user->hostname = ip_address();
$user->roles = array();
- $user->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
+ $user->roles[DRUPAL_ANONYMOUS_ROLE] = DRUPAL_ANONYMOUS_ROLE;
$user->cache = 0;
return $user;
}
diff --git a/core/includes/session.inc b/core/includes/session.inc
index df70f0e..55c320c 100644
--- a/core/includes/session.inc
+++ b/core/includes/session.inc
@@ -110,8 +110,8 @@ function _drupal_session_read($sid) {
// Add roles element to $user.
$user->roles = array();
- $user->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
- $user->roles += db_query("SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = :uid", array(':uid' => $user->uid))->fetchAllKeyed(0, 1);
+ $user->roles[DRUPAL_AUTHENTICATED_ROLE] = DRUPAL_AUTHENTICATED_ROLE;
+ $user->roles += db_query("SELECT r.name, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.role_name = r.name WHERE ur.uid = :uid", array(':uid' => $user->uid))->fetchAllKeyed(0, 1);
}
elseif ($user) {
// The user is anonymous or blocked. Only preserve two fields from the
diff --git a/core/modules/block/block.admin.inc b/core/modules/block/block.admin.inc
index 2b3c2dd..b8c86c5 100644
--- a/core/modules/block/block.admin.inc
+++ b/core/modules/block/block.admin.inc
@@ -399,7 +399,7 @@ function block_admin_configure($form, &$form_state, $module, $delta) {
}
// Per-role visibility.
- $default_role_options = db_query("SELECT rid FROM {block_role} WHERE module = :module AND delta = :delta", array(
+ $default_role_options = db_query("SELECT role FROM {block_role} WHERE module = :module AND delta = :delta", array(
':module' => $block->module,
':delta' => $block->delta,
))->fetchCol();
@@ -493,10 +493,10 @@ function block_admin_configure_submit($form, &$form_state) {
->condition('module', $form_state['values']['module'])
->condition('delta', $form_state['values']['delta'])
->execute();
- $query = db_insert('block_role')->fields(array('rid', 'module', 'delta'));
- foreach (array_filter($form_state['values']['roles']) as $rid) {
+ $query = db_insert('block_role')->fields(array('role', 'module', 'delta'));
+ foreach (array_filter($form_state['values']['roles']) as $role_name) {
$query->values(array(
- 'rid' => $rid,
+ 'role' => $role_name,
'module' => $form_state['values']['module'],
'delta' => $form_state['values']['delta'],
));
@@ -594,10 +594,10 @@ function block_add_block_form_submit($form, &$form_state) {
}
$query->execute();
- $query = db_insert('block_role')->fields(array('rid', 'module', 'delta'));
- foreach (array_filter($form_state['values']['roles']) as $rid) {
+ $query = db_insert('block_role')->fields(array('role', 'module', 'delta'));
+ foreach (array_filter($form_state['values']['roles']) as $role_name) {
$query->values(array(
- 'rid' => $rid,
+ 'role' => $role_name,
'module' => $form_state['values']['module'],
'delta' => $delta,
));
diff --git a/core/modules/block/block.install b/core/modules/block/block.install
index c2d4185..79c27a6 100644
--- a/core/modules/block/block.install
+++ b/core/modules/block/block.install
@@ -117,16 +117,16 @@ function block_schema() {
'not null' => TRUE,
'description' => "The block's unique delta within module, from {block}.delta.",
),
- 'rid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
+ 'role' => array(
+ 'type' => 'varchar',
+ 'length' => 64,
'not null' => TRUE,
- 'description' => "The user's role ID from {users_roles}.rid.",
+ 'description' => "The role name from {role}.name.",
),
),
- 'primary key' => array('module', 'delta', 'rid'),
+ 'primary key' => array('module', 'delta', 'role'),
'indexes' => array(
- 'rid' => array('rid'),
+ 'role' => array('role'),
),
);
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 4d942ed..7d6e876 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -600,8 +600,8 @@ function block_custom_block_save($edit, $delta) {
*/
function block_form_user_profile_form_alter(&$form, &$form_state) {
$account = $form['#user'];
- $rids = array_keys($account->roles);
- $result = db_query("SELECT DISTINCT b.* FROM {block} b LEFT JOIN {block_role} r ON b.module = r.module AND b.delta = r.delta WHERE b.status = 1 AND b.custom <> 0 AND (r.rid IN (:rids) OR r.rid IS NULL) ORDER BY b.weight, b.module", array(':rids' => $rids));
+ $role_names = array_keys($account->roles);
+ $result = db_query("SELECT DISTINCT b.* FROM {block} b LEFT JOIN {block_role} r ON b.module = r.module AND b.delta = r.delta WHERE b.status = 1 AND b.custom <> 0 AND (r.role IN (:role_names) OR r.role IS NULL) ORDER BY b.weight, b.module", array(':role_names' => $role_names));
$blocks = array();
foreach ($result as $block) {
@@ -783,9 +783,9 @@ function block_block_list_alter(&$blocks) {
// Build an array of roles for each block.
$block_roles = array();
- $result = db_query('SELECT module, delta, rid FROM {block_role}');
+ $result = db_query('SELECT module, delta, role FROM {block_role}');
foreach ($result as $record) {
- $block_roles[$record->module][$record->delta][] = $record->rid;
+ $block_roles[$record->module][$record->delta][] = $record->role;
}
foreach ($blocks as $key => $block) {
@@ -991,7 +991,7 @@ function template_preprocess_block(&$variables) {
*/
function block_user_role_delete($role) {
db_delete('block_role')
- ->condition('rid', $role->rid)
+ ->condition('role', $role->name)
->execute();
}
diff --git a/core/modules/comment/comment.test b/core/modules/comment/comment.test
index 9a77853..111a315 100644
--- a/core/modules/comment/comment.test
+++ b/core/modules/comment/comment.test
@@ -521,7 +521,7 @@ class CommentInterfaceTest extends CommentHelperCase {
// Prepare for anonymous comment submission (comment approval enabled).
variable_set('user_register', USER_REGISTER_VISITORS);
$this->drupalLogin($this->admin_user);
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => TRUE,
'skip comment approval' => FALSE,
@@ -545,7 +545,7 @@ class CommentInterfaceTest extends CommentHelperCase {
// Prepare for anonymous comment submission (no approval required).
$this->drupalLogin($this->admin_user);
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => TRUE,
'skip comment approval' => TRUE,
@@ -709,7 +709,7 @@ class CommentInterfaceTest extends CommentHelperCase {
variable_set('user_register', $info['user_register']);
// Change user permissions.
- $rid = ($this->loggedInUser ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_RID);
+ $rid = ($this->loggedInUser ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_ROLE);
$perms = array_intersect_key($info, array('access comments' => 1, 'post comments' => 1, 'skip comment approval' => 1, 'edit own comments' => 1));
user_role_change_permissions($rid, $perms);
@@ -971,7 +971,7 @@ class CommentAnonymous extends CommentHelperCase {
function testAnonymous() {
$this->drupalLogin($this->admin_user);
// Enabled anonymous user comments.
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => TRUE,
'skip comment approval' => TRUE,
@@ -1058,7 +1058,7 @@ class CommentAnonymous extends CommentHelperCase {
$this->drupalLogout();
// Reset.
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => FALSE,
'post comments' => FALSE,
'skip comment approval' => FALSE,
@@ -1077,7 +1077,7 @@ class CommentAnonymous extends CommentHelperCase {
$this->assertNoFieldByName('subject', '', t('Subject field not found.'));
$this->assertNoFieldByName("comment_body[$langcode][0][value]", '', t('Comment field not found.'));
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => FALSE,
'skip comment approval' => FALSE,
@@ -1087,7 +1087,7 @@ class CommentAnonymous extends CommentHelperCase {
$this->assertLink('Log in', 1, t('Link to log in was found.'));
$this->assertLink('register', 1, t('Link to register was found.'));
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => FALSE,
'post comments' => TRUE,
'skip comment approval' => TRUE,
@@ -1454,7 +1454,7 @@ class CommentApprovalTest extends CommentHelperCase {
*/
function testApprovalAdminInterface() {
// Set anonymous comments to require approval.
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => TRUE,
'skip comment approval' => FALSE,
@@ -1523,7 +1523,7 @@ class CommentApprovalTest extends CommentHelperCase {
*/
function testApprovalNodeInterface() {
// Set anonymous comments to require approval.
- user_role_change_permissions(DRUPAL_ANONYMOUS_RID, array(
+ user_role_change_permissions(DRUPAL_ANONYMOUS_ROLE, array(
'access comments' => TRUE,
'post comments' => TRUE,
'skip comment approval' => FALSE,
@@ -1602,13 +1602,13 @@ class CommentBlockFunctionalTest extends CommentHelperCase {
// Test that a user without the 'access comments' permission cannot see the
// block.
$this->drupalLogout();
- user_role_revoke_permissions(DRUPAL_ANONYMOUS_RID, array('access comments'));
+ user_role_revoke_permissions(DRUPAL_ANONYMOUS_ROLE, array('access comments'));
// drupalCreateNode() does not automatically flush content caches unlike
// posting a node from a node form.
cache_clear_all();
$this->drupalGet('');
$this->assertNoText($block['title'], t('Block was not found.'));
- user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access comments'));
+ user_role_grant_permissions(DRUPAL_ANONYMOUS_ROLE, array('access comments'));
// Test that a user with the 'access comments' permission can see the
// block.
diff --git a/core/modules/field/modules/text/text.test b/core/modules/field/modules/text/text.test
index 5936937..6386746 100644
--- a/core/modules/field/modules/text/text.test
+++ b/core/modules/field/modules/text/text.test
@@ -212,8 +212,8 @@ class TextFieldTestCase extends DrupalWebTestCase {
$format = filter_format_load($edit['format']);
$format_id = $format->format;
$permission = filter_permission_name($format);
- $rid = max(array_keys($this->web_user->roles));
- user_role_grant_permissions($rid, array($permission));
+ $role = max(array_keys($this->web_user->roles));
+ user_role_grant_permissions($role, array($permission));
$this->drupalLogin($this->web_user);
// Display edition form.
diff --git a/core/modules/filter/filter.admin.inc b/core/modules/filter/filter.admin.inc
index b4a7008..1284151 100644
--- a/core/modules/filter/filter.admin.inc
+++ b/core/modules/filter/filter.admin.inc
@@ -319,8 +319,8 @@ function filter_admin_format_form_submit($form, &$form_state) {
// Save user permissions.
if ($permission = filter_permission_name($format)) {
- foreach ($format->roles as $rid => $enabled) {
- user_role_change_permissions($rid, array($permission => $enabled));
+ foreach ($format->roles as $role_name => $enabled) {
+ user_role_change_permissions($role_name, array($permission => $enabled));
}
}
diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index 3b8942f..4d57e30 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -442,7 +442,7 @@ function filter_formats_reset() {
* @param $format
* An object representing the text format.
* @return
- * An array of role names, keyed by role ID.
+ * An array of role names, keyed by role name.
*/
function filter_get_roles_by_format($format) {
// Handle the fallback format upfront (all roles have access to this format).
@@ -457,17 +457,17 @@ function filter_get_roles_by_format($format) {
/**
* Retrieves a list of text formats that are allowed for a given role.
*
- * @param $rid
- * The user role ID to retrieve text formats for.
+ * @param $role_name
+ * The user role name to retrieve text formats for.
* @return
* An array of text format objects that are allowed for the role, keyed by
* the text format ID and ordered by weight.
*/
-function filter_get_formats_by_role($rid) {
+function filter_get_formats_by_role($role_name) {
$formats = array();
foreach (filter_formats() as $format) {
$roles = filter_get_roles_by_format($format);
- if (isset($roles[$rid])) {
+ if (isset($roles[$role_name])) {
$formats[$format->format] = $format;
}
}
diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index f7d4552..816ebea 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -195,9 +195,9 @@ function user_admin_account() {
$accounts = array();
foreach ($result as $account) {
$users_roles = array();
- $roles_result = db_query('SELECT rid FROM {users_roles} WHERE uid = :uid', array(':uid' => $account->uid));
+ $roles_result = db_query('SELECT role_name FROM {users_roles} WHERE uid = :uid', array(':uid' => $account->uid));
foreach ($roles_result as $user_role) {
- $users_roles[] = $roles[$user_role->rid];
+ $users_roles[] = $roles[$user_role->role_name];
}
asort($users_roles);
@@ -280,8 +280,8 @@ function user_admin_settings() {
// Do not allow users to set the anonymous or authenticated user roles as the
// administrator role.
$roles = user_roles();
- unset($roles[DRUPAL_ANONYMOUS_RID]);
- unset($roles[DRUPAL_AUTHENTICATED_RID]);
+ unset($roles[DRUPAL_ANONYMOUS_ROLE]);
+ unset($roles[DRUPAL_AUTHENTICATED_ROLE]);
$roles[0] = t('disabled');
$form['admin_role']['user_admin_role'] = array(
@@ -648,12 +648,12 @@ function user_admin_settings() {
* @see user_admin_permissions_submit()
* @see theme_user_admin_permissions()
*/
-function user_admin_permissions($form, $form_state, $rid = NULL) {
+function user_admin_permissions($form, $form_state, $role_name = NULL) {
// Retrieve role names for columns.
$role_names = user_roles();
- if (is_numeric($rid)) {
- $role_names = array($rid => $role_names[$rid]);
+ if (!empty($role_name)) {
+ $role_names = array($role_name => $role_names[$role_name]);
}
// Fetch permissions for all roles or the one selected role.
$role_permissions = user_role_permissions($role_names);
@@ -695,10 +695,10 @@ function user_admin_permissions($form, $form_state, $rid = NULL) {
'#markup' => $perm_item['title'],
'#description' => theme('user_permission_description', array('permission_item' => $perm_item, 'hide' => $hide_descriptions)),
);
- foreach ($role_names as $rid => $name) {
+ foreach ($role_names as $role_name) {
// Builds arrays for checked boxes for each role
- if (isset($role_permissions[$rid][$perm])) {
- $status[$rid][] = $perm;
+ if (isset($role_permissions[$role_name][$perm])) {
+ $status[$role_name][] = $perm;
}
}
}
@@ -706,14 +706,14 @@ function user_admin_permissions($form, $form_state, $rid = NULL) {
}
// Have to build checkboxes here after checkbox arrays are built
- foreach ($role_names as $rid => $name) {
- $form['checkboxes'][$rid] = array(
+ foreach ($role_names as $role_name) {
+ $form['checkboxes'][$role_name] = array(
'#type' => 'checkboxes',
'#options' => $options,
- '#default_value' => isset($status[$rid]) ? $status[$rid] : array(),
- '#attributes' => array('class' => array('rid-' . $rid)),
+ '#default_value' => isset($status[$role_name]) ? $status[$role_name] : array(),
+ '#attributes' => array('class' => array('role_name-' . $role_name)),
);
- $form['role_names'][$rid] = array('#markup' => check_plain($name), '#tree' => TRUE);
+ $form['role_names'][$role_name] = array('#markup' => check_plain($role_name), '#tree' => TRUE);
}
$form['actions'] = array('#type' => 'actions');
@@ -730,8 +730,8 @@ function user_admin_permissions($form, $form_state, $rid = NULL) {
* @see user_admin_permissions()
*/
function user_admin_permissions_submit($form, &$form_state) {
- foreach ($form_state['values']['role_names'] as $rid => $name) {
- user_role_change_permissions($rid, $form_state['values'][$rid]);
+ foreach ($form_state['values']['role_names'] as $role_name) {
+ user_role_change_permissions($role_name, $form_state['values'][$role_name]);
}
drupal_set_message(t('The changes have been saved.'));
@@ -765,17 +765,17 @@ function theme_user_admin_permissions($variables) {
'data' => drupal_render($form['permission'][$key]),
'class' => array('permission'),
);
- foreach (element_children($form['checkboxes']) as $rid) {
- $form['checkboxes'][$rid][$key]['#title'] = $roles[$rid] . ': ' . $form['permission'][$key]['#markup'];
- $form['checkboxes'][$rid][$key]['#title_display'] = 'invisible';
- $row[] = array('data' => drupal_render($form['checkboxes'][$rid][$key]), 'class' => array('checkbox'));
+ foreach (element_children($form['checkboxes']) as $role_name) {
+ $form['checkboxes'][$role_name][$key]['#title'] = $roles[$role_name] . ': ' . $form['permission'][$key]['#markup'];
+ $form['checkboxes'][$role_name][$key]['#title_display'] = 'invisible';
+ $row[] = array('data' => drupal_render($form['checkboxes'][$role_name][$key]), 'class' => array('checkbox'));
}
}
$rows[] = $row;
}
$header[] = (t('Permission'));
- foreach (element_children($form['role_names']) as $rid) {
- $header[] = array('data' => drupal_render($form['role_names'][$rid]), 'class' => array('checkbox'));
+ foreach (element_children($form['role_names']) as $role_name) {
+ $header[] = array('data' => drupal_render($form['role_names'][$role_name]), 'class' => array('checkbox'));
}
$output = theme('system_compact_link');
$output .= theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'permissions')));
@@ -827,14 +827,13 @@ function user_admin_roles($form, $form_state) {
'#tree' => TRUE,
);
$order = 0;
- foreach ($roles as $rid => $name) {
- $form['roles'][$rid]['#role'] = (object) array(
- 'rid' => $rid,
- 'name' => $name,
+ foreach ($roles as $role_name) {
+ $form['roles'][$role_name]['#role'] = (object) array(
+ 'name' => $role_name,
'weight' => $order,
);
- $form['roles'][$rid]['#weight'] = $order;
- $form['roles'][$rid]['weight'] = array(
+ $form['roles'][$role_name]['#weight'] = $order;
+ $form['roles'][$role_name]['weight'] = array(
'#type' => 'textfield',
'#title' => t('Weight for @title', array('@title' => $name)),
'#title_display' => 'invisible',
@@ -872,8 +871,8 @@ function user_admin_roles($form, $form_state) {
* Form submit function. Update the role weights.
*/
function user_admin_roles_order_submit($form, &$form_state) {
- foreach ($form_state['values']['roles'] as $rid => $role_values) {
- $role = $form['roles'][$rid]['#role'];
+ foreach ($form_state['values']['roles'] as $role_name => $role_values) {
+ $role = $form['roles'][$role_name]['#role'];
$role->weight = $role_values['weight'];
user_role_save($role);
}
@@ -893,20 +892,19 @@ function theme_user_admin_roles($variables) {
$form = $variables['form'];
$header = array(t('Name'), t('Weight'), array('data' => t('Operations'), 'colspan' => 2));
- foreach (element_children($form['roles']) as $rid) {
- $name = $form['roles'][$rid]['#role']->name;
+ foreach (element_children($form['roles']) as $role_name) {
$row = array();
- if (in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) {
- $row[] = t('@name (locked)', array('@name' => $name));
- $row[] = drupal_render($form['roles'][$rid]['weight']);
+ if (in_array($role_name, array(DRUPAL_ANONYMOUS_ROLE, DRUPAL_AUTHENTICATED_ROLE))) {
+ $row[] = t('@name (locked)', array('@name' => $role_name));
+ $row[] = drupal_render($form['roles'][$role_name]['weight']);
$row[] = '';
- $row[] = l(t('edit permissions'), 'admin/people/permissions/' . $rid);
+ $row[] = l(t('edit permissions'), 'admin/people/permissions/' . $role_name);
}
else {
- $row[] = check_plain($name);
- $row[] = drupal_render($form['roles'][$rid]['weight']);
- $row[] = l(t('edit role'), 'admin/people/permissions/roles/edit/' . $rid);
- $row[] = l(t('edit permissions'), 'admin/people/permissions/' . $rid);
+ $row[] = check_plain($role_name);
+ $row[] = drupal_render($form['roles'][$role_name]['weight']);
+ $row[] = l(t('edit role'), 'admin/people/permissions/roles/edit/' . $role_name);
+ $row[] = l(t('edit permissions'), 'admin/people/permissions/' . $role_name);
}
$rows[] = array('data' => $row, 'class' => array('draggable'));
}
@@ -928,7 +926,7 @@ function theme_user_admin_roles($variables) {
* @see user_admin_role_submit()
*/
function user_admin_role($form, $form_state, $role) {
- if ($role->rid == DRUPAL_ANONYMOUS_RID || $role->rid == DRUPAL_AUTHENTICATED_RID) {
+ if ($role->name == DRUPAL_ANONYMOUS_ROLE || $role->name == DRUPAL_AUTHENTICATED_ROLE) {
drupal_goto('admin/people/permissions/roles');
}
@@ -940,11 +938,15 @@ function user_admin_role($form, $form_state, $role) {
'#size' => 30,
'#required' => TRUE,
'#maxlength' => 64,
- '#description' => t('The name for this role. Example: "moderator", "editorial board", "site architect".'),
+ '#description' => t('The machine name for this role. Example: "moderator", "editorial board", "site architect".'),
);
- $form['rid'] = array(
- '#type' => 'value',
- '#value' => $role->rid,
+ $form['label'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Role label'),
+ '#default_value' => $role->label,
+ '#size' => 60,
+ '#maxlength' => 255,
+ '#description' => t('The label for this role. Example: "moderator", "editorial board", "site architect".'),
);
$form['weight'] = array(
'#type' => 'value',
@@ -970,13 +972,13 @@ function user_admin_role($form, $form_state, $role) {
function user_admin_role_validate($form, &$form_state) {
if (!empty($form_state['values']['name'])) {
if ($form_state['values']['op'] == t('Save role')) {
- $role = user_role_load_by_name($form_state['values']['name']);
- if ($role && $role->rid != $form_state['values']['rid']) {
+ $role = user_role_load($form_state['values']['name']);
+ if ($role) {
form_set_error('name', t('The role name %name already exists. Choose another role name.', array('%name' => $form_state['values']['name'])));
}
}
elseif ($form_state['values']['op'] == t('Add role')) {
- if (user_role_load_by_name($form_state['values']['name'])) {
+ if (user_role_load($form_state['values']['name'])) {
form_set_error('name', t('The role name %name already exists. Choose another role name.', array('%name' => $form_state['values']['name'])));
}
}
@@ -1007,16 +1009,16 @@ function user_admin_role_submit($form, &$form_state) {
* Form submit handler for the user_admin_role() form.
*/
function user_admin_role_delete_submit($form, &$form_state) {
- $form_state['redirect'] = 'admin/people/permissions/roles/delete/' . $form_state['values']['rid'];
+ $form_state['redirect'] = 'admin/people/permissions/roles/delete/' . $form_state['values']['name'];
}
/**
* Form to confirm role delete operation.
*/
function user_admin_role_delete_confirm($form, &$form_state, $role) {
- $form['rid'] = array(
+ $form['name'] = array(
'#type' => 'value',
- '#value' => $role->rid,
+ '#value' => $role->name,
);
return confirm_form($form, t('Are you sure you want to delete the role %name ?', array('%name' => $role->name)), 'admin/people/permissions/roles', t('This action cannot be undone.'), t('Delete'));
}
@@ -1025,7 +1027,7 @@ function user_admin_role_delete_confirm($form, &$form_state, $role) {
* Form submit handler for user_admin_role_delete_confirm().
*/
function user_admin_role_delete_confirm_submit($form, &$form_state) {
- user_role_delete((int) $form_state['values']['rid']);
+ user_role_delete($form_state['values']['name']);
drupal_set_message(t('The role has been deleted.'));
$form_state['redirect'] = 'admin/people/permissions/roles';
}
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 51237d7..be92bd2 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -394,7 +394,7 @@ function hook_user_role_insert($role) {
// Save extra fields provided by the module to user roles.
db_insert('my_module_table')
->fields(array(
- 'rid' => $role->rid,
+ 'role_name' => $role->name,
'role_description' => $role->description,
))
->execute();
@@ -414,7 +414,7 @@ function hook_user_role_insert($role) {
function hook_user_role_update($role) {
// Save extra fields provided by the module to user roles.
db_merge('my_module_table')
- ->key(array('rid' => $role->rid))
+ ->key(array('role_name' => $role->name))
->fields(array(
'role_description' => $role->description
))
@@ -435,7 +435,7 @@ function hook_user_role_update($role) {
function hook_user_role_delete($role) {
// Delete existing instances of the deleted role.
db_delete('my_module_table')
- ->condition('rid', $role->rid)
+ ->condition('role_name', $role->name)
->execute();
}
diff --git a/core/modules/user/user.entity.inc b/core/modules/user/user.entity.inc
index 5549c77..b92be90 100644
--- a/core/modules/user/user.entity.inc
+++ b/core/modules/user/user.entity.inc
@@ -20,17 +20,17 @@ class UserController extends DrupalDefaultEntityController {
$queried_users[$key]->data = unserialize($record->data);
$queried_users[$key]->roles = array();
if ($record->uid) {
- $queried_users[$record->uid]->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
+ $queried_users[$record->uid]->roles[DRUPAL_AUTHENTICATED_ROLE] = DRUPAL_AUTHENTICATED_ROLE;
}
else {
- $queried_users[$record->uid]->roles[DRUPAL_ANONYMOUS_RID] = 'anonymous user';
+ $queried_users[$record->uid]->roles[DRUPAL_ANONYMOUS_ROLE] = DRUPAL_ANONYMOUS_ROLE;
}
}
// Add any additional roles from the database.
- $result = db_query('SELECT r.rid, r.name, ur.uid FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid IN (:uids)', array(':uids' => array_keys($queried_users)));
+ $result = db_query('SELECT r.name, ur.uid FROM {role} r INNER JOIN {users_roles} ur ON ur.role_name = r.name WHERE ur.uid IN (:uids)', array(':uids' => array_keys($queried_users)));
foreach ($result as $record) {
- $queried_users[$record->uid]->roles[$record->rid] = $record->name;
+ $queried_users[$record->uid]->roles[$record->name] = $record->name;
}
// Add the full file objects for user pictures if enabled.
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index f7175c3..e941dbd 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -54,18 +54,18 @@ function user_schema() {
$schema['role_permission'] = array(
'description' => 'Stores the permissions assigned to user roles.',
'fields' => array(
- 'rid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
+ 'role_name' => array(
+ 'type' => 'varchar',
+ 'length' => 64,
'not null' => TRUE,
- 'description' => 'Foreign Key: {role}.rid.',
+ 'description' => 'Foreign Key: {role}.name.',
),
'permission' => array(
'type' => 'varchar',
'length' => 128,
'not null' => TRUE,
'default' => '',
- 'description' => 'A single permission granted to the role identified by rid.',
+ 'description' => 'A single permission granted to the role identified by role_name.',
),
'module' => array(
'type' => 'varchar',
@@ -75,14 +75,14 @@ function user_schema() {
'description' => "The module declaring the permission.",
),
),
- 'primary key' => array('rid', 'permission'),
+ 'primary key' => array('role_name', 'permission'),
'indexes' => array(
'permission' => array('permission'),
),
'foreign keys' => array(
'role' => array(
'table' => 'roles',
- 'columns' => array('rid' => 'rid'),
+ 'columns' => array('role_name' => 'name'),
),
),
);
@@ -90,18 +90,18 @@ function user_schema() {
$schema['role'] = array(
'description' => 'Stores user roles.',
'fields' => array(
- 'rid' => array(
- 'type' => 'serial',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'description' => 'Primary Key: Unique role ID.',
- ),
'name' => array(
'type' => 'varchar',
'length' => 64,
'not null' => TRUE,
'default' => '',
'description' => 'Unique role name.',
+ ),
+ 'label' => array(
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'default' => '',
+ 'description' => 'Role label.',
'translatable' => TRUE,
),
'weight' => array(
@@ -111,10 +111,7 @@ function user_schema() {
'description' => 'The weight of this role in listings and the user interface.',
),
),
- 'unique keys' => array(
- 'name' => array('name'),
- ),
- 'primary key' => array('rid'),
+ 'primary key' => array('name'),
'indexes' => array(
'name_weight' => array('name', 'weight'),
),
@@ -257,17 +254,17 @@ function user_schema() {
'default' => 0,
'description' => 'Primary Key: {users}.uid for user.',
),
- 'rid' => array(
- 'type' => 'int',
- 'unsigned' => TRUE,
+ 'role_name' => array(
+ 'type' => 'varchar',
+ 'length' => 64,
'not null' => TRUE,
- 'default' => 0,
- 'description' => 'Primary Key: {role}.rid for role.',
+ 'default' => '',
+ 'description' => 'Primary Key: {role}.name for role.',
),
),
- 'primary key' => array('uid', 'rid'),
+ 'primary key' => array('uid', 'role_name'),
'indexes' => array(
- 'rid' => array('rid'),
+ 'role_name' => array('role_name'),
),
'foreign keys' => array(
'user' => array(
@@ -276,7 +273,7 @@ function user_schema() {
),
'role' => array(
'table' => 'roles',
- 'columns' => array('rid' => 'rid'),
+ 'columns' => array('role_name' => 'name'),
),
),
);
@@ -312,28 +309,16 @@ function user_install() {
->execute();
// Built-in roles.
- $rid_anonymous = db_insert('role')
- ->fields(array('name' => 'anonymous user', 'weight' => 0))
+ db_insert('role')->fields(array(
+ 'name' => DRUPAL_ANONYMOUS_ROLE,
+ 'label' => 'Anonymous user',
+ 'weight' => 0))
->execute();
- $rid_authenticated = db_insert('role')
- ->fields(array('name' => 'authenticated user', 'weight' => 1))
+ db_insert('role')->fields(array(
+ 'name' => DRUPAL_AUTHENTICATED_ROLE,
+ 'label' => 'Authenticated user',
+ 'weight' => 1))
->execute();
-
- // Sanity check to ensure the anonymous and authenticated role IDs are the
- // same as the drupal defined constants. In certain situations, this will
- // not be true.
- if ($rid_anonymous != DRUPAL_ANONYMOUS_RID) {
- db_update('role')
- ->fields(array('rid' => DRUPAL_ANONYMOUS_RID))
- ->condition('rid', $rid_anonymous)
- ->execute();
- }
- if ($rid_authenticated != DRUPAL_AUTHENTICATED_RID) {
- db_update('role')
- ->fields(array('rid' => DRUPAL_AUTHENTICATED_RID))
- ->condition('rid', $rid_authenticated)
- ->execute();
- }
}
/**
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 5919b78..8c79132 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -471,12 +471,12 @@ function user_save($account, $edit = array()) {
->condition('uid', $account->uid)
->execute();
- $query = db_insert('users_roles')->fields(array('uid', 'rid'));
- foreach (array_keys($account->roles) as $rid) {
- if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) {
+ $query = db_insert('users_roles')->fields(array('uid', 'role_name'));
+ foreach ($account->roles as $role_name) {
+ if (!in_array($role_name, array(DRUPAL_ANONYMOUS_ROLE, DRUPAL_AUTHENTICATED_ROLE))) {
$query->values(array(
'uid' => $account->uid,
- 'rid' => $rid,
+ 'role_name' => $role_name,
));
}
}
@@ -534,7 +534,7 @@ function user_save($account, $edit = array()) {
}
// Make sure $account is properly initialized.
- $account->roles[DRUPAL_AUTHENTICATED_RID] = 'authenticated user';
+ $account->roles[DRUPAL_AUTHENTICATED_ROLE] = DRUPAL_AUTHENTICATED_ROLE;
field_attach_insert('user', $account);
$edit = (array) $account;
@@ -543,12 +543,12 @@ function user_save($account, $edit = array()) {
// Save user roles.
if (count($account->roles) > 1) {
- $query = db_insert('users_roles')->fields(array('uid', 'rid'));
- foreach (array_keys($account->roles) as $rid) {
- if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) {
+ $query = db_insert('users_roles')->fields(array('uid', 'role_name'));
+ foreach ($account->roles as $role_name) {
+ if (!in_array($role_name, array(DRUPAL_ANONYMOUS_ROLE, DRUPAL_AUTHENTICATED_ROLE))) {
$query->values(array(
'uid' => $account->uid,
- 'rid' => $rid,
+ 'role_name' => $role_name,
));
}
}
@@ -694,29 +694,29 @@ function user_role_permissions($roles = array()) {
$role_permissions = $fetch = array();
if ($roles) {
- foreach ($roles as $rid => $name) {
- if (isset($cache[$rid])) {
- $role_permissions[$rid] = $cache[$rid];
+ foreach ($roles as $role_name) {
+ if (isset($cache[$role_name])) {
+ $role_permissions[$role_name] = $cache[$role_name];
}
else {
- // Add this rid to the list of those needing to be fetched.
- $fetch[] = $rid;
+ // Add this role name to the list of those needing to be fetched.
+ $fetch[] = $role_name;
// Prepare in case no permissions are returned.
- $cache[$rid] = array();
+ $cache[$role_name] = array();
}
}
if ($fetch) {
// Get from the database permissions that were not in the static variable.
- // Only role IDs with at least one permission assigned will return rows.
- $result = db_query("SELECT rid, permission FROM {role_permission} WHERE rid IN (:fetch)", array(':fetch' => $fetch));
+ // Only role names with at least one permission assigned will return rows.
+ $result = db_query("SELECT role_name, permission FROM {role_permission} WHERE role_name IN (:fetch)", array(':fetch' => $fetch));
foreach ($result as $row) {
- $cache[$row->rid][$row->permission] = TRUE;
+ $cache[$row->role_name][$row->permission] = TRUE;
}
- foreach ($fetch as $rid) {
- // For every rid, we know we at least assigned an empty array.
- $role_permissions[$rid] = $cache[$rid];
+ foreach ($fetch as $role_name) {
+ // For every role name, we know we at least assigned an empty array.
+ $role_permissions[$role_name] = $cache[$role_name];
}
}
}
@@ -1041,18 +1041,18 @@ function user_account_form(&$form, &$form_state) {
// @todo This should be solved more elegantly. See issue #119038.
$checkbox_authenticated = array(
'#type' => 'checkbox',
- '#title' => $roles[DRUPAL_AUTHENTICATED_RID],
+ '#title' => $roles[DRUPAL_AUTHENTICATED_ROLE],
'#default_value' => TRUE,
'#disabled' => TRUE,
);
- unset($roles[DRUPAL_AUTHENTICATED_RID]);
+ unset($roles[DRUPAL_AUTHENTICATED_ROLE]);
$form['account']['roles'] = array(
'#type' => 'checkboxes',
'#title' => t('Roles'),
'#default_value' => (!$register && isset($account->roles) ? array_keys($account->roles) : array()),
'#options' => $roles,
'#access' => $roles && user_access('administer permissions'),
- DRUPAL_AUTHENTICATED_RID => $checkbox_authenticated,
+ DRUPAL_AUTHENTICATED_ROLE => $checkbox_authenticated,
);
$form['account']['notify'] = array(
@@ -2801,8 +2801,7 @@ function user_mail_tokens(&$replacements, $data, $options) {
* permission are returned.
*
* @return
- * An associative array with the role id as the key and the role name as
- * value.
+ * An associative array with the role name both as the key and value.
*/
function user_roles($membersonly = FALSE, $permission = NULL) {
$user_roles = &drupal_static(__FUNCTION__);
@@ -2810,37 +2809,34 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
// Do not cache roles for specific permissions. This data is not requested
// frequently enough to justify the additional memory use.
if (empty($permission)) {
- $cid = $membersonly ? DRUPAL_AUTHENTICATED_RID : DRUPAL_ANONYMOUS_RID;
+ $cid = $membersonly ? DRUPAL_AUTHENTICATED_ROLE : DRUPAL_ANONYMOUS_ROLE;
if (isset($user_roles[$cid])) {
return $user_roles[$cid];
}
}
$query = db_select('role', 'r');
- $query->addTag('translatable');
- $query->fields('r', array('rid', 'name'));
+ $query->fields('r', array('name'));
$query->orderBy('weight');
- $query->orderBy('name');
if (!empty($permission)) {
- $query->innerJoin('role_permission', 'p', 'r.rid = p.rid');
+ $query->innerJoin('role_permission', 'p', 'r.name = p.role_name');
$query->condition('p.permission', $permission);
}
$result = $query->execute();
$roles = array();
foreach ($result as $role) {
- switch ($role->rid) {
- // We only translate the built in role names
- case DRUPAL_ANONYMOUS_RID:
+ switch ($role->name) {
+ case DRUPAL_ANONYMOUS_ROLE:
if (!$membersonly) {
- $roles[$role->rid] = t($role->name);
+ $roles[$role->name] = $role->name;
}
break;
- case DRUPAL_AUTHENTICATED_RID:
- $roles[$role->rid] = t($role->name);
+ case DRUPAL_AUTHENTICATED_ROLE:
+ $roles[$role->name] = $role->name;
break;
default:
- $roles[$role->rid] = $role->name;
+ $roles[$role->name] = $role->name;
}
}
@@ -2853,41 +2849,21 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
}
/**
- * Fetches a user role by role ID.
- *
- * @param $rid
- * An integer representing the role ID.
- *
- * @return
- * A fully-loaded role object if a role with the given ID exists, or FALSE
- * otherwise.
- *
- * @see user_role_load_by_name()
- */
-function user_role_load($rid) {
- return db_select('role', 'r')
- ->fields('r')
- ->condition('rid', $rid)
- ->execute()
- ->fetchObject();
-}
-
-/**
* Fetches a user role by role name.
*
- * @param $role_name
- * A string representing the role name.
+ * @param string $name
+ * An string representing the role name.
*
- * @return
+ * @return object
* A fully-loaded role object if a role with the given name exists, or FALSE
* otherwise.
*
- * @see user_role_load()
+ * @see user_role_load_by_name()
*/
-function user_role_load_by_name($role_name) {
+function user_role_load($name) {
return db_select('role', 'r')
->fields('r')
- ->condition('name', $role_name)
+ ->condition('name', $name)
->execute()
->fetchObject();
}
@@ -2896,8 +2872,7 @@ function user_role_load_by_name($role_name) {
* Save a user role to the database.
*
* @param $role
- * A role object to modify or add. If $role->rid is not specified, a new
- * role will be created.
+ * A role object to modify or add.
* @return
* Status constant indicating if role was created or updated.
* Failure to write the user role record will return FALSE. Otherwise.
@@ -2919,14 +2894,20 @@ function user_role_save($role) {
// Let modules modify the user role before it is saved to the database.
module_invoke_all('user_role_presave', $role);
- if (!empty($role->rid) && $role->name) {
- $status = drupal_write_record('role', $role, 'rid');
- module_invoke_all('user_role_update', $role);
- }
- else {
+ $exists = db_select('role', 'r')
+ ->fields('r', array('name'))
+ ->condition('name', $role->name)
+ ->execute()
+ ->fetchAll();
+
+ if (empty($exists)) {
$status = drupal_write_record('role', $role);
module_invoke_all('user_role_insert', $role);
}
+ else {
+ $status = drupal_write_record('role', $role, 'name');
+ module_invoke_all('user_role_update', $role);
+ }
// Clear the user access cache.
drupal_static_reset('user_access');
@@ -2938,26 +2919,21 @@ function user_role_save($role) {
/**
* Delete a user role from database.
*
- * @param $role
- * A string with the role name, or an integer with the role ID.
+ * @param $role_name
+ * A string with the role name.
*/
-function user_role_delete($role) {
- if (is_int($role)) {
- $role = user_role_load($role);
- }
- else {
- $role = user_role_load_by_name($role);
- }
+function user_role_delete($role_name) {
+ $role = user_role_load($role_name);
db_delete('role')
- ->condition('rid', $role->rid)
+ ->condition('name', $role->name)
->execute();
db_delete('role_permission')
- ->condition('rid', $role->rid)
+ ->condition('role_name', $role->name)
->execute();
// Update the users who have this role set:
db_delete('users_roles')
- ->condition('rid', $role->rid)
+ ->condition('role_name', $role->name)
->execute();
module_invoke_all('user_role_delete', $role);
@@ -2972,7 +2948,7 @@ function user_role_delete($role) {
*/
function user_role_edit_access($role) {
// Prevent the system-defined roles from being altered or removed.
- if ($role->rid == DRUPAL_ANONYMOUS_RID || $role->rid == DRUPAL_AUTHENTICATED_RID) {
+ if ($role->name == DRUPAL_ANONYMOUS_ROLE || $role->name == DRUPAL_AUTHENTICATED_ROLE) {
return FALSE;
}
@@ -3004,8 +2980,8 @@ function user_permission_get_modules() {
* role, the form submit handler may directly pass the submitted values for the
* checkboxes form element to this function.
*
- * @param $rid
- * The ID of a user role to alter.
+ * @param $role_name
+ * The name of a user role to alter.
* @param $permissions
* An associative array, where the key holds the permission name and the value
* determines whether to grant or revoke that permission. Any value that
@@ -3025,37 +3001,37 @@ function user_permission_get_modules() {
* @see user_role_grant_permissions()
* @see user_role_revoke_permissions()
*/
-function user_role_change_permissions($rid, array $permissions = array()) {
+function user_role_change_permissions($role_name, array $permissions = array()) {
// Grant new permissions for the role.
$grant = array_filter($permissions);
if (!empty($grant)) {
- user_role_grant_permissions($rid, array_keys($grant));
+ user_role_grant_permissions($role_name, array_keys($grant));
}
// Revoke permissions for the role.
$revoke = array_diff_assoc($permissions, $grant);
if (!empty($revoke)) {
- user_role_revoke_permissions($rid, array_keys($revoke));
+ user_role_revoke_permissions($role_name, array_keys($revoke));
}
}
/**
* Grant permissions to a user role.
*
- * @param $rid
- * The ID of a user role to alter.
+ * @param $role_name
+ * The name of a user role to alter.
* @param $permissions
* A list of permission names to grant.
*
* @see user_role_change_permissions()
* @see user_role_revoke_permissions()
*/
-function user_role_grant_permissions($rid, array $permissions = array()) {
+function user_role_grant_permissions($role_name, array $permissions = array()) {
$modules = user_permission_get_modules();
// Grant new permissions for the role.
foreach ($permissions as $name) {
db_merge('role_permission')
->key(array(
- 'rid' => $rid,
+ 'role_name' => $role_name,
'permission' => $name,
))
->fields(array(
@@ -3072,18 +3048,18 @@ function user_role_grant_permissions($rid, array $permissions = array()) {
/**
* Revoke permissions from a user role.
*
- * @param $rid
- * The ID of a user role to alter.
+ * @param $role_name
+ * The name of a user role to alter.
* @param $permissions
* A list of permission names to revoke.
*
* @see user_role_change_permissions()
* @see user_role_grant_permissions()
*/
-function user_role_revoke_permissions($rid, array $permissions = array()) {
+function user_role_revoke_permissions($role_name, array $permissions = array()) {
// Revoke permissions for the role.
db_delete('role_permission')
- ->condition('rid', $rid)
+ ->condition('role_name', $role_name)
->condition('permission', $permissions, 'IN')
->execute();
@@ -3112,7 +3088,7 @@ function user_user_operations($form = array(), $form_state = array()) {
if (user_access('administer permissions')) {
$roles = user_roles(TRUE);
- unset($roles[DRUPAL_AUTHENTICATED_RID]); // Can't edit authenticated role.
+ unset($roles[DRUPAL_AUTHENTICATED_ROLE]); // Can't edit authenticated role.
$add_roles = array();
foreach ($roles as $key => $value) {
@@ -3141,14 +3117,14 @@ function user_user_operations($form = array(), $form_state = array()) {
// If the form has been posted, we need to insert the proper data for
// role editing if necessary.
if (!empty($form_state['submitted'])) {
- $operation_rid = explode('-', $form_state['values']['operation']);
- $operation = $operation_rid[0];
+ $operation_role = explode('-', $form_state['values']['operation']);
+ $operation = $operation_role[0];
if ($operation == 'add_role' || $operation == 'remove_role') {
- $rid = $operation_rid[1];
+ $role_name = $operation_role[1];
if (user_access('administer permissions')) {
$operations[$form_state['values']['operation']] = array(
'callback' => 'user_multiple_role_edit',
- 'callback arguments' => array($operation, $rid),
+ 'callback arguments' => array($operation, $role_name),
);
}
else {
@@ -3193,18 +3169,14 @@ function user_user_operations_block($accounts) {
/**
* Callback function for admin mass adding/deleting a user role.
*/
-function user_multiple_role_edit($accounts, $operation, $rid) {
- // The role name is not necessary as user_save() will reload the user
- // object, but some modules' hook_user() may look at this first.
- $role_name = db_query('SELECT name FROM {role} WHERE rid = :rid', array(':rid' => $rid))->fetchField();
-
+function user_multiple_role_edit($accounts, $operation, $role_name) {
switch ($operation) {
case 'add_role':
$accounts = user_load_multiple($accounts);
foreach ($accounts as $account) {
// Skip adding the role to the user if they already have it.
- if ($account !== FALSE && !isset($account->roles[$rid])) {
- $roles = $account->roles + array($rid => $role_name);
+ if ($account !== FALSE && !isset($account->roles[$role_name])) {
+ $roles = $account->roles + array($role_name => $role_name);
// For efficiency manually save the original account before applying
// any changes.
$account->original = clone $account;
@@ -3216,8 +3188,8 @@ function user_multiple_role_edit($accounts, $operation, $rid) {
$accounts = user_load_multiple($accounts);
foreach ($accounts as $account) {
// Skip removing the role from the user if they already don't have it.
- if ($account !== FALSE && isset($account->roles[$rid])) {
- $roles = array_diff($account->roles, array($rid => $role_name));
+ if ($account !== FALSE && isset($account->roles[$role_name])) {
+ $roles = array_diff($account->roles, array($role_name => $role_name));
// For efficiency manually save the original account before applying
// any changes.
$account->original = clone $account;
@@ -3329,11 +3301,11 @@ function user_filters() {
// Regular filters
$filters = array();
$roles = user_roles(TRUE);
- unset($roles[DRUPAL_AUTHENTICATED_RID]); // Don't list authorized role.
+ unset($roles[DRUPAL_AUTHENTICATED_ROLE]); // Don't list authorized role.
if (count($roles)) {
$filters['role'] = array(
'title' => t('role'),
- 'field' => 'ur.rid',
+ 'field' => 'ur.name',
'options' => array(
'[any]' => t('any'),
) + $roles,
@@ -3387,17 +3359,17 @@ function user_build_filter_query(SelectQuery $query) {
if ($key == 'permission') {
$account = new stdClass();
$account->uid = 'user_filter';
- $account->roles = array(DRUPAL_AUTHENTICATED_RID => 1);
+ $account->roles = array(DRUPAL_AUTHENTICATED_ROLE => DRUPAL_AUTHENTICATED_ROLE);
if (user_access($value, $account)) {
continue;
}
$users_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
- $permission_alias = $query->join('role_permission', 'p', $users_roles_alias . '.rid = %alias.rid');
+ $permission_alias = $query->join('role_permission', 'p', $users_roles_alias . '.role_name = %alias.role_name');
$query->condition($permission_alias . '.permission', $value);
}
elseif ($key == 'role') {
$users_roles_alias = $query->join('users_roles', 'ur', '%alias.uid = u.uid');
- $query->condition($users_roles_alias . '.rid' , $value);
+ $query->condition($users_roles_alias . '.role_name' , $value);
}
else {
$query->condition($filters[$key]['field'], $value);
@@ -3836,8 +3808,8 @@ function user_register_submit($form, &$form_state) {
*/
function user_modules_installed($modules) {
// Assign all available permissions to the administrator role.
- $rid = variable_get('user_admin_role', 0);
- if ($rid) {
+ $role_name = variable_get('user_admin_role', 0);
+ if ($role_name) {
$permissions = array();
foreach ($modules as $module) {
if ($module_permissions = module_invoke($module, 'permission')) {
@@ -3845,7 +3817,7 @@ function user_modules_installed($modules) {
}
}
if (!empty($permissions)) {
- user_role_grant_permissions($rid, $permissions);
+ user_role_grant_permissions($role_name, $permissions);
}
}
}
diff --git a/core/modules/user/user.permissions.js b/core/modules/user/user.permissions.js
index 988820e..2b0ba48 100644
--- a/core/modules/user/user.permissions.js
+++ b/core/modules/user/user.permissions.js
@@ -30,12 +30,12 @@ Drupal.behaviors.permissions = {
.attr('title', Drupal.t("This permission is inherited from the authenticated user role."))
.hide();
- $('input[type=checkbox]', this).not('.rid-2, .rid-1').addClass('real-checkbox').each(function () {
+ $('input[type=checkbox]', this).not('.role_name-anonymous_user, .role_name-authenticated_user').addClass('real-checkbox').each(function () {
$dummy.clone().insertAfter(this);
});
// Initialize the authenticated user checkbox.
- $('input[type=checkbox].rid-2', this)
+ $('input[type=checkbox].role_name-authenticated_user', this)
.bind('click.permissions', self.toggle)
// .triggerHandler() cannot be used here, as it only affects the first
// element.
diff --git a/core/modules/user/user.test b/core/modules/user/user.test
index aa43ffe..d20c1a2 100644
--- a/core/modules/user/user.test
+++ b/core/modules/user/user.test
@@ -1093,7 +1093,7 @@ class UserPictureTestCase extends DrupalWebTestCase {
class UserPermissionsTestCase extends DrupalWebTestCase {
protected $admin_user;
- protected $rid;
+ protected $role_name;
public static function getInfo() {
return array(
@@ -1108,10 +1108,9 @@ class UserPermissionsTestCase extends DrupalWebTestCase {
$this->admin_user = $this->drupalCreateUser(array('administer permissions', 'access user profiles', 'administer site configuration', 'administer modules', 'administer users'));
- // Find the new role ID - it must be the maximum.
- $all_rids = array_keys($this->admin_user->roles);
- sort($all_rids);
- $this->rid = array_pop($all_rids);
+ // Find the new role name.
+ $all_role_names = array_keys($this->admin_user->roles);
+ $this->role_name = reset(array_diff_key($this->admin_user->roles, array(DRUPAL_AUTHENTICATED_ROLE => DRUPAL_AUTHENTICATED_ROLE)));
}
/**