Same name and namespace in other branches
  1. 10 core/modules/user/user.module \user_roles()
  2. 4.6.x modules/user.module \user_roles()
  3. 4.7.x modules/user.module \user_roles()
  4. 5.x modules/user/user.module \user_roles()
  5. 7.x modules/user/user.module \user_roles()
  6. 8.9.x core/modules/user/user.module \user_roles()
  7. 9 core/modules/user/user.module \user_roles()

Retrieve an array of roles matching specified conditions.

Parameters

$membersonly: Set this to TRUE to exclude the 'anonymous' role.

$permission: A string containing a permission. If set, only roles containing that permission are returned.

Return value

An associative array with the role id as the key and the role name as value.

11 calls to user_roles()
blogapi_admin_settings in modules/blogapi/blogapi.module
blogapi_metaweblog_new_media_object in modules/blogapi/blogapi.module
Blogging API callback. Inserts a file into Drupal.
filter_admin_format_form_submit in modules/filter/filter.admin.inc
Process filter format form submissions.
theme_comment_post_forbidden in modules/comment/comment.module
Theme a "you can't post comments" notice.
theme_user_admin_perm in modules/user/user.admin.inc
Theme the administer permissions page.

... See full list

File

modules/user/user.module, line 1794
Enables the user registration and login system.

Code

function user_roles($membersonly = FALSE, $permission = NULL) {

  // System roles take the first two positions.
  $roles = array(
    DRUPAL_ANONYMOUS_RID => NULL,
    DRUPAL_AUTHENTICATED_RID => NULL,
  );
  if (!empty($permission)) {
    $result = db_query("SELECT r.* FROM {role} r INNER JOIN {permission} p ON r.rid = p.rid WHERE p.perm LIKE '%%%s%%' ORDER BY r.name", $permission);
  }
  else {
    $result = db_query('SELECT * FROM {role} ORDER BY name');
  }
  while ($role = db_fetch_object($result)) {
    switch ($role->rid) {

      // We only translate the built in role names
      case DRUPAL_ANONYMOUS_RID:
        if (!$membersonly) {
          $roles[$role->rid] = t($role->name);
        }
        break;
      case DRUPAL_AUTHENTICATED_RID:
        $roles[$role->rid] = t($role->name);
        break;
      default:
        $roles[$role->rid] = $role->name;
    }
  }

  // Filter to remove unmatched system roles.
  return array_filter($roles);
}