You are here

function signup_handler_field_signup_node_link::check_access in Signup 6.2

Same name and namespace in other branches
  1. 6 views/handlers/signup_handler_field_signup_node_link.inc \signup_handler_field_signup_node_link::check_access()
  2. 7 views/handlers/signup_handler_field_signup_node_link.inc \signup_handler_field_signup_node_link::check_access()
1 call to signup_handler_field_signup_node_link::check_access()
signup_handler_field_signup_node_link::render in views/handlers/signup_handler_field_signup_node_link.inc

File

views/handlers/signup_handler_field_signup_node_link.inc, line 81

Class

signup_handler_field_signup_node_link
Field handler to generate links to the various signup subtabs on a node.

Code

function check_access($node, $tab) {
  switch ($tab) {
    case 'signup':

      // Slightly complicated, since _signup_menu_access() is testing if we
      // want the signup tab, but here we just want to know if the user can
      // signup at all.
      return user_access('sign up for content') && _signup_needs_output($node) && variable_get('signup_form_location', 'node') != 'none';
    case 'list':

      // Also can't use _signup_menu_access() since we don't have to assume
      // a tab for this access check.
      $view_all = user_access('view all signups');
      $admin = _signup_menu_access($node, 'admin');
      return ($view_all || $admin) && _signup_needs_output($node);
    case 'settings':

      // There's no separate check for this, it just assumes 'admin' acces.
      return _signup_menu_access($node, 'admin');
    default:

      // All the other tabs can just use _signup_menu_access() directly.
      return _signup_menu_access($node, $tab);
  }
}