You are here

function pmpermission_grants_list in Drupal PM (Project Management) 7.2

Helper function for pmpermission_node_grants.

1 call to pmpermission_grants_list()
pmpermission_node_grants in pmpermission/pmpermission.module
Implements hook_node_grants().

File

pmpermission/pmpermission.module, line 707
Main module file for the pmpermission module.

Code

function pmpermission_grants_list($account, $op, $type) {
  $grants = array();
  if (user_access("PM permission {$type}: {$op} all", $account)) {
    $grants["pmpermission_{$type}_{$op}_all"] = array(
      0,
    );
  }
  if (user_access("PM permission {$type}: {$op} own", $account)) {
    $grants["pmpermission_{$type}_{$op}_own"] = array(
      $account->uid,
    );
  }
  if (module_exists('pmorganization')) {
    if (_pmpermission_get_field_name($type, 'parent') or $type == 'pmorganization') {
      $field_name = variable_get("pmpermission_field_org_member_reference", '');
      $pmorganization_nids = _pmpermission_get_entity_id_referenced_to_user('node', 'pmorganization', $field_name, $account->uid);
      $belonged = 'Organization';
      if (user_access("PM permission {$type}: {$op} own {$belonged}", $account) and !empty($pmorganization_nids)) {
        $grants["pmpermission_{$type}_{$op}_belonged_{$belonged}"] = $pmorganization_nids;
      }
    }
  }
  if (module_exists('pmproject')) {
    if (_pmpermission_get_field_name($type, 'pm')) {
      $assigned = 'Project Manager';
      if (user_access("PM permission {$type}: {$op} if {$assigned}", $account)) {
        $grants["pmpermission_{$type}_{$op}_assigned_{$assigned}"] = array(
          $account->uid,
        );
      }
    }
  }
  if (_pmpermission_get_field_name($type, 'assigned')) {
    $assigned = 'Assigned';
    if (user_access("PM permission {$type}: {$op} if {$assigned}", $account)) {
      $grants["pmpermission_{$type}_{$op}_assigned_{$assigned}"] = array(
        $account->uid,
      );
    }
  }
  return $grants;
}