function crm_core_activity_access in CRM Core 7
Access callback for activity.
3 calls to crm_core_activity_access()
- crm_core_activity_crm_core_activity_view_access_check in modules/
crm_core_activity/ plugins/ tasks/ crm_core_activity_view.inc - Callback to determine if a page is accessible.
- crm_core_activity_file_download_access in modules/
crm_core_activity/ crm_core_activity.module - Implements hook_file_download_access().
- _crm_core_activity_resource_access in modules/
crm_core_activity/ includes/ crm_core_activity_resource.inc - Determine whether the current user can access a crm_core_activity resource.
1 string reference to 'crm_core_activity_access'
- crm_core_activity_entity_info in modules/
crm_core_activity/ crm_core_activity.module - Implements hook_entity_info().
File
- modules/
crm_core_activity/ crm_core_activity.module, line 188 - Provides an entity for recording a contact's activities.
Code
function crm_core_activity_access($op, $activity, $account = NULL, $entity_type = NULL) {
if (!isset($account)) {
$account = $GLOBALS['user'];
}
if (is_object($activity)) {
$activity_type = $activity->type;
}
else {
$activity_type = $activity;
}
// First grant access to the entity for the specified operation if no other
// module denies it and at least one other module says to grant access.
$access_results = module_invoke_all('crm_core_entity_access', $op, $activity, $account, $entity_type);
if (in_array(FALSE, $access_results, TRUE)) {
return FALSE;
}
elseif (in_array(TRUE, $access_results, TRUE)) {
return TRUE;
}
switch ($op) {
case 'create':
return user_access('administer crm_core_activity entities', $account) || user_access('create crm_core_activity entities', $account) || user_access('create crm_core_activity entities of bundle ' . $activity_type, $account);
case 'view':
return user_access('administer crm_core_activity entities', $account) || user_access('view any crm_core_activity entity', $account) || user_access('view any crm_core_activity entity of bundle ' . $activity_type, $account);
case 'edit':
case 'update':
return user_access('administer crm_core_activity entities', $account) || user_access('edit any crm_core_activity entity', $account) || user_access('edit any crm_core_activity entity of bundle ' . $activity_type);
case 'delete':
return user_access('administer crm_core_activity entities', $account) || user_access('delete any crm_core_activity entity', $account) || user_access('delete any crm_core_activity entity of bundle ' . $activity_type);
case 'create_view':
// Check if user has access permission to a view with create activity links.
if (user_access('administer crm_core_activity entities', $account) || user_access('create crm_core_activity entities', $account)) {
return TRUE;
}
// Allow access if account has create permissions for any crm core activity type.
foreach (array_keys(crm_core_activity_types()) as $type) {
if (entity_access('create', 'crm_core_activity', $type, $account)) {
return TRUE;
}
}
return FALSE;
}
}