You are here

function casetracker_case_access in Case Tracker 7.2

Determines whether the given user has access to a casetracker_case.

Parameters

$op: The operation being performed. One of 'view', 'update', 'create', 'delete' or just 'edit' (being the same as 'create' or 'update').

$case: Optionally a casetracker_case or a casetracker_case type to check access for. If nothing is given, access for all casetracker_cases is determined.

$account: The user to check for. Leave it to NULL to check for the global user.

Return value

boolean Whether access is allowed or not.

2 calls to casetracker_case_access()
casetracker_case_handler_delete_link_field::render in views/casetracker_case_handlers.inc
Render the field.
casetracker_case_handler_edit_link_field::render in views/casetracker_case_handlers.inc
Render the field.
2 string references to 'casetracker_case_access'
CaseTrackerCaseUIController::hook_menu in includes/controller/ui/CaseTrackerCaseUIController.inc
Overrides hook_menu() defaults. Main reason for doing this is that parent class hook_menu() is optimized for entity type administration.
casetracker_entity_info in ./casetracker.module

File

./casetracker_case.inc, line 25
This file concentrates all general functionality related to Cases in Case Tracker, leaving to the other files in /admin the stuff related to CRUD and structural configuration

Code

function casetracker_case_access($op, $case = NULL, $account = NULL) {
  if (user_access('administer casetracker_cases', $account)) {
    return TRUE;
  }
  if (isset($case) && is_object($case) && ($type_name = $case->type)) {
    $op = $op == 'view' ? 'view' : 'edit';
    if (user_access("{$op} any {$type_name} casetracker_case", $account)) {
      return TRUE;
    }
  }
  return FALSE;
}