function checklistapi_checklist_access in Checklist API 8
Same name and namespace in other branches
- 7 checklistapi.module \checklistapi_checklist_access()
Access callback: Checks the current user's access to a given checklist.
Parameters
string $id: The checklist ID.
string $operation: (optional) The operation to test access for. Accepted values are "view", "edit", and "any". Defaults to "any".
Return value
bool Returns TRUE if the current user has access to perform a given operation on the specified checklist, or FALSE if not.
Throws
InvalidArgumentException Throws an exception if an unsupported operation is supplied.
4 calls to checklistapi_checklist_access()
- ChecklistapiAccessCheck::access in src/Access/ ChecklistapiAccessCheck.php 
- Checks routing access for the checklist.
- ChecklistapiChecklist::userHasAccess in src/ChecklistapiChecklist.php 
- Determines whether the current user has access to the checklist.
- ChecklistapiModuleTest::testChecklistapiChecklistAccessInvalidMode in tests/src/ Unit/ ChecklistapiModuleTest.php 
- Tests that checklistapi_checklist_access() rejects an invalid mode.
- checklistapi_help in ./checklistapi.module 
- Implements hook_help().
File
- ./checklistapi.module, line 32 
- An API for creating fillable, persistent checklists.
Code
function checklistapi_checklist_access($id, $operation = 'any') {
  $all_operations = [
    'view',
    'edit',
    'any',
  ];
  if (!in_array($operation, $all_operations)) {
    throw new \InvalidArgumentException(sprintf('No such operation "%s"', $operation));
  }
  $current_user = \Drupal::currentUser();
  $access['view'] = $current_user
    ->hasPermission('view any checklistapi checklist') || $current_user
    ->hasPermission("view {$id} checklistapi checklist");
  $access['edit'] = $current_user
    ->hasPermission('edit any checklistapi checklist') || $current_user
    ->hasPermission("edit {$id} checklistapi checklist");
  $access['any'] = $access['view'] || $access['edit'];
  return $access[$operation];
}