You are here

function nodequeue_queue_access in Nodequeue 7.3

Same name and namespace in other branches
  1. 5.2 nodequeue.module \nodequeue_queue_access()
  2. 6.2 nodequeue.module \nodequeue_queue_access()
  3. 7.2 nodequeue.module \nodequeue_queue_access()

Return TRUE If the specified account has access to manipulate this queue.

2 calls to nodequeue_queue_access()
nodequeue_node_and_queue_access in ./nodequeue.module
Used by menu system to determine access to the node and the queue in question.
nodequeue_view_queues in includes/nodequeue.admin.inc
Display a list of queues and their status for the administrator.
1 string reference to 'nodequeue_queue_access'
nodequeue_menu in ./nodequeue.module
Implements hook_menu().

File

./nodequeue.module, line 1943
Maintains queues of nodes in arbitrary order.

Code

function nodequeue_queue_access($queue, $subqueue = NULL, $account = NULL) {
  if (!$account) {
    global $user;
    $account = $user;
  }

  // Automatically true if all queues.
  if (user_access('manipulate all queues', $account)) {
    return TRUE;
  }

  // Automatically false if they can't manipulate queues at all.
  if (!user_access('manipulate queues', $account) || empty($queue->roles)) {
    return FALSE;
  }
  if ($subqueue) {
    return nodequeue_api_subqueue_access($subqueue, $account);
  }
  if (!nodequeue_api_queue_access($queue, $account)) {
    return FALSE;
  }
  $roles = array_keys((array) $account->roles) + array(
    DRUPAL_AUTHENTICATED_RID,
  );
  return (bool) array_intersect($roles, $queue->roles);
}