function apigee_api_catalog_jsonapi_apidoc_filter_access in Apigee API Catalog 8
Implements hook_jsonapi_ENTITY_TYPE_filter_access() for 'apidoc'.
File
- ./
apigee_api_catalog.module, line 50 - Copyright 2019 Google Inc.
Code
function apigee_api_catalog_jsonapi_apidoc_filter_access(EntityTypeInterface $entity_type, AccountInterface $account) {
// Allow admins to see all entities.
if (($admin_permission = $entity_type
->getAdminPermission()) && $account
->hasPermission($admin_permission)) {
return [
JSONAPI_FILTER_AMONG_ALL => AccessResult::allowed()
->cachePerPermissions(),
];
}
// Allow all entities if account has view published and unpublished or
// account had API Catalog admin permission.
if ($account
->hasPermission('view published apidoc entities') && $account
->hasPermission('view unpublished apidoc entities')) {
return [
JSONAPI_FILTER_AMONG_ALL => AccessResult::allowed()
->cachePerPermissions(),
];
}
// Allow access to published entities if user has permission to view
// published.
return [
JSONAPI_FILTER_AMONG_PUBLISHED => AccessResult::allowedIfHasPermission($account, 'view published apidoc entities'),
];
}