You are here

function casetracker_project_access in Case Tracker 7.2

Determines whether the given user has access to a casetracker_project.

Parameters

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

$project: Optionally a casetracker_project or a casetracker_project type to check access for. If nothing is given, access for all casetracker_projects 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_project_access()
casetracker_project_handler_delete_link_field::render in views/casetracker_project_handlers.inc
Render the field.
casetracker_project_handler_edit_link_field::render in views/casetracker_project_handlers.inc
Render the field.
2 string references to 'casetracker_project_access'
CaseTrackerProjectUIController::hook_menu in includes/controller/ui/CaseTrackerProjectUIController.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_project.inc, line 25
This file concentrates all general functionality related to Projects in Case Tracker, leaving to the other files in /admin the stuff related to CRUD and structural configuration

Code

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