function user_role_change_permissions

Change permissions for a user role.

This function may be used to grant and revoke multiple permissions at once. For example, when a form exposes checkboxes to configure permissions for a role, the form submit handler may directly pass the submitted values for the checkboxes form element to this function.

Parameters

$rid: The ID of a user role to alter.

$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 evaluates to TRUE will cause the permission to be granted. Any value that evaluates to FALSE will cause the permission to be revoked.

array(
  'administer nodes' => 0,
  // Revoke 'administer nodes'
  'administer blocks' => FALSE,
  // Revoke 'administer blocks'
  'access user profiles' => 1,
  // Grant 'access user profiles'
  'access content' => TRUE,
  // Grant 'access content'
  'access comments' => 'access comments',
);

Existing permissions are not changed, unless specified in $permissions.

See also

user_role_grant_permissions()

user_role_revoke_permissions()

15 calls to user_role_change_permissions()
CommentAnonymousTest::testAnonymous in drupal/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
Tests anonymous comment functionality.
CommentApprovalTest::testApprovalAdminInterface in drupal/core/modules/comment/lib/Drupal/comment/Tests/CommentApprovalTest.php
Test comment approval functionality through admin/content/comment.
CommentApprovalTest::testApprovalNodeInterface in drupal/core/modules/comment/lib/Drupal/comment/Tests/CommentApprovalTest.php
Tests comment approval functionality through the node interface.
CommentAttributesTest::setUp in drupal/core/modules/rdf/lib/Drupal/rdf/Tests/CommentAttributesTest.php
Sets up a Drupal site for running functional and integration tests.
CommentLinksTest::setEnvironment in drupal/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
Re-configures the environment, module settings, and user permissions.

... See full list

File

drupal/core/modules/user/user.module, line 2242
Enables the user registration and login system.

Code

function user_role_change_permissions($rid, array $permissions = array()) {

  // Grant new permissions for the role.
  $grant = array_filter($permissions);
  if (!empty($grant)) {
    user_role_grant_permissions($rid, 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));
  }
}