function user_role_permissions

cis7 user.module user_role_permissions($roles = array())
cle7 user.module user_role_permissions($roles = array())
elmsmedia7 user.module user_role_permissions($roles = array())
icor7 user.module user_role_permissions($roles = array())
meedjum_blog7 user.module user_role_permissions($roles = array())
mooc7 user.module user_role_permissions($roles = array())

Determine the permissions for one or more roles.

Parameters

$roles: An array whose keys are the role IDs of interest, such as $user->roles.

Return value

An array indexed by role ID. Each value is an array whose keys are the permission strings for the given role ID.

3 calls to user_role_permissions()
user_access in modules/user/user.module
Determine whether the user has a given privilege.
user_admin_permissions in modules/user/user.admin.inc
Menu callback: administer permissions.
_user_features_get_permissions in sites/all/modules/ulmus/features/includes/features.user.inc
Represent the current state of permissions as a perm to role name array map.
5 string references to 'user_role_permissions'
icor_install in profiles/icor/icor.install
Implements hook_install().
user_role_delete in modules/user/user.module
Delete a user role from database.
user_role_grant_permissions in modules/user/user.module
Grant permissions to a user role.
user_role_revoke_permissions in modules/user/user.module
Revoke permissions from a user role.
user_role_save in modules/user/user.module
Save a user role to the database.

File

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

Code

function user_role_permissions($roles = array()) {
  $cache = &drupal_static(__FUNCTION__, array());

  $role_permissions = $fetch = array();

  if ($roles) {
    foreach ($roles as $rid => $name) {
      if (isset($cache[$rid])) {
        $role_permissions[$rid] = $cache[$rid];
      }
      else {
        // Add this rid to the list of those needing to be fetched.
        $fetch[] = $rid;
        // Prepare in case no permissions are returned.
        $cache[$rid] = 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));

      foreach ($result as $row) {
        $cache[$row->rid][$row->permission] = TRUE;
      }
      foreach ($fetch as $rid) {
        // For every rid, we know we at least assigned an empty array.
        $role_permissions[$rid] = $cache[$rid];
      }
    }
  }

  return $role_permissions;
}