You are here

public static function BookAccess::addUserGrants in Book access 7.2

Same name and namespace in other branches
  1. 6.2 book_access.module \BookAccess::addUserGrants()

Adds user grants to book pages.

Parameters

$bid: The book ID.

$uids: An array of user IDs for which to add the book grants.

$grants: An array of grants, in the format

$grants[$grant][$uid];

, where

$grant;

is a string between 'grant_view', 'grant_update', 'grant_delete', 'grant_admin_access', 'grant_add_child', 'grant_edit_outline', and

$uid;

is the user ID.

3 calls to BookAccess::addUserGrants()
BookAccess::setUserGrants in ./book_access.module
Sets the user grants for book pages.
BookAccessTestCase::caseUpdatePreservesGrants in ./book_access_test_case.test
book_access_ui_user_add_submit in ./book_access_ui.admin.inc
Form submission callback for book_access_ui_grants_form().

File

./book_access.module, line 100
Allows to set the access control for book nodes on a per book basis. Based on forum_access.module and tac_lite.module.

Class

BookAccess
@file

Code

public static function addUserGrants($bid, array $uids, array $grants) {
  foreach ($uids as $uid) {
    $bool = db_query_range("SELECT 1 FROM {book_access_user} WHERE nid = :nid AND uid = :uid", 0, 1, array(
      ':nid' => $bid,
      ':uid' => $uid,
    ))
      ->fetchField();
    $row = new stdClass();
    $row->nid = $bid;
    $row->uid = $uid;
    foreach (self::grantIDs() as $id) {
      $row->{$id} = !empty($grants[$id][$uid]);
    }
    drupal_write_record('book_access_user', $row, $bool ? array(
      'nid',
      'uid',
    ) : array());
  }
}