1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace Drupal\taxonomy;
- use Drupal\Core\Access\AccessResult;
- use Drupal\Core\Entity\EntityAccessControlHandler;
- use Drupal\Core\Entity\EntityInterface;
- use Drupal\Core\Session\AccountInterface;
- /**
- * Defines the access control handler for the taxonomy term entity type.
- *
- * @see \Drupal\taxonomy\Entity\Term
- */
- class TermAccessControlHandler extends EntityAccessControlHandler {
- /**
- * {@inheritdoc}
- */
- protected function checkAccess(EntityInterface $entity, $operation, AccountInterface $account) {
- switch ($operation) {
- case 'view':
- return AccessResult::allowedIfHasPermission($account, 'access content');
- case 'update':
- return AccessResult::allowedIfHasPermissions($account, ["edit terms in {$entity->bundle()}", 'administer taxonomy'], 'OR');
- case 'delete':
- return AccessResult::allowedIfHasPermissions($account, ["delete terms in {$entity->bundle()}", 'administer taxonomy'], 'OR');
- default:
- // No opinion.
- return AccessResult::neutral();
- }
- }
- /**
- * {@inheritdoc}
- */
- protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
- return AccessResult::allowedIfHasPermission($account, 'administer taxonomy');
- }
- }
|