You are here

function _pmpermission_get_assigned_id in Drupal PM (Project Management) 7.2

Should recursively hunt for a particular parent and get its id.

1 call to _pmpermission_get_assigned_id()
_pmpermission_grants_assigned in pmpermission/pmpermission.module
Generate grants for assigned permission set.

File

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

Code

function _pmpermission_get_assigned_id($node, $type, $assigned) {
  $assigned_nids = FALSE;
  switch ($assigned) {
    case 'Project Manager':
      $field_name = variable_get("pmpermission_field_pm_reference", FALSE);
      break;
    case 'Assigned':
      $field_name = variable_get("pmpermission_field_assigned_reference", FALSE);
      break;
    default:
      break;
  }
  if ($field_name) {
    try {
      $wrapper = entity_metadata_wrapper('node', $node);
      $field_info = field_info_field($field_name);
      if ($field_info['cardinality'] == 1) {
        $account = $wrapper->{$field_name}
          ->value();
        if ($account) {
          $assigned_nids[] = $account->uid;
        }
      }
      else {
        foreach ($wrapper->{$field_name}
          ->getIterator() as $account_wrapper) {
          $assigned_nids[] = $account_wrapper
            ->getIdentifier();
        }
      }
    } catch (Exception $e) {
      _pmpermission_watchdog_log($e);
    }
  }
  return $assigned_nids;
}