You are here

function nodequeue_queue_access in Nodequeue 5.2

Same name and namespace in other branches
  1. 6.2 nodequeue.module \nodequeue_queue_access()
  2. 7.3 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_menu in ./nodequeue.module
Implementation of hook_menu
nodequeue_view_queues in ./nodequeue.module
Display a list of queues and their status for the administrator.

File

./nodequeue.module, line 1398

Code

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

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

  // Automatically false if they can't manipulate queues at all.
  if (!user_access('manipulate queues') || empty($queue->roles)) {
    return FALSE;
  }

  // Return false if the queue's owner rejects access to the queue.
  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);
}