class SocialEventManagersAccessHelper in Open Social 10.3.x
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.2 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.3 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.4 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.5 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.6 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.7 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 8.8 modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 10.0.x modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 10.1.x modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
- 10.2.x modules/social_features/social_event/modules/social_event_managers/src/SocialEventManagersAccessHelper.php \Drupal\social_event_managers\SocialEventManagersAccessHelper
Helper class for checking update access on event managers nodes.
Hierarchy
- class \Drupal\social_event_managers\SocialEventManagersAccessHelper
Expanded class hierarchy of SocialEventManagersAccessHelper
3 files declare their use of SocialEventManagersAccessHelper
- AddEnrolleeAccessCheck.php in modules/
social_features/ social_event/ modules/ social_event_managers/ src/ Access/ AddEnrolleeAccessCheck.php - EventAnEnrollController.php in modules/
social_features/ social_event/ modules/ social_event_an_enroll/ src/ Controller/ EventAnEnrollController.php - social_event_managers.module in modules/
social_features/ social_event/ modules/ social_event_managers/ social_event_managers.module - Contains social_event_managers.module.
File
- modules/
social_features/ social_event/ modules/ social_event_managers/ src/ SocialEventManagersAccessHelper.php, line 12
Namespace
Drupal\social_event_managersView source
class SocialEventManagersAccessHelper {
/**
* NodeAccessCheck for given operation, node and user account.
*/
public static function nodeAccessCheck(NodeInterface $node, $op, AccountInterface $account) {
if ($op === 'update') {
// Only for events.
if ($node
->getType() === 'event') {
// Only continue if the user has access to view the event.
if ($node
->access('view', $account)) {
// The owner has access.
if ($account
->id() === $node
->getOwnerId()) {
return 2;
}
$event_managers = $node
->get('field_event_managers')
->getValue();
foreach ($event_managers as $event_manager) {
if (isset($event_manager['target_id']) && $account
->id() == $event_manager['target_id']) {
return 2;
}
}
// No hits, so we assume the user is not an event manager.
return 1;
}
}
}
return 0;
}
/**
* Gets the Entity access for the given node.
*/
public static function getEntityAccessResult(NodeInterface $node, $op, AccountInterface $account) {
$access = self::nodeAccessCheck($node, $op, $account);
switch ($access) {
case 2:
return AccessResult::allowed()
->cachePerPermissions()
->addCacheableDependency($node);
case 1:
return AccessResult::forbidden();
}
return AccessResult::neutral();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
SocialEventManagersAccessHelper:: |
public static | function | Gets the Entity access for the given node. | |
SocialEventManagersAccessHelper:: |
public static | function | NodeAccessCheck for given operation, node and user account. |