function organigrams_user_access in Organigrams 7
Get a value indicating whether the user perform the operation.
Parameters
string $operation: An operation to perform on the organigram. Valid values are view, edit and delete.
mixed $object: An organigram ID, machine name or object on which the operation will be performed.
mixed $account: The account to check, if not given use currently logged in user.
Return value
bool TRUE if the user has permission to perform the operation, otherwise FALSE.
2 calls to organigrams_user_access()
- organigrams_entity_access in ./organigrams.module 
- Access callback for the organigrams entities.
- organigrams_form_overview_organigrams_items in ./organigrams_item.admin.inc 
- Generates a form overview of all organigrams items.
2 string references to 'organigrams_user_access'
- organigrams_entity_info in ./organigrams.module 
- Implements hook_entity_info().
- organigrams_menu in ./organigrams.module 
- Implements hook_menu().
File
- ./organigrams.module, line 999 
- Defines the organigrams functions and entity types.
Code
function organigrams_user_access($operation, $object, $account = NULL) {
  static $valid_operations = array(
    'view',
    'edit',
    'delete',
  );
  // Check if the user is not an administrator and validate the operation.
  if (!($granted = user_access('administer organigrams', $account)) && in_array($operation, $valid_operations)) {
    // If the $object argument is a string.
    if (is_string($object)) {
      // Then assume its an organigram machine name and try to load the
      // organigram.
      $object = organigrams_machine_name_load($object);
    }
    elseif (is_numeric($object)) {
      // Then assume its an organigram ID and try to load the organigram.
      $object = organigrams_load($object);
    }
    // Check if the operation describes a view operation.
    if ($operation == 'view' && $object->status) {
      // Check for the access content access right.
      $granted = user_access('access content', $account);
    }
    else {
      // The view operation is denied so check if the user has edit access.
      if ($operation == 'view') {
        $operation = 'edit';
      }
      // Get the machine name.
      $machine_name = isset($object->machine_name) ? $object->machine_name : $object->organigrams_machine_name;
      // A user which has not the correct permission will be evaluated for a
      // specific organigram permission. Retrieve a value indicating whether the
      // current user has permission to perform the specified operation on the
      // organigram.
      $granted = user_access("{$operation} organigram {$machine_name}", $account);
    }
  }
  return $granted;
}