function social_event_managers_node_access_records in Open Social 8
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.2 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.3 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.4 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.5 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.6 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.7 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 8.8 modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 10.3.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 10.0.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 10.1.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
- 10.2.x modules/social_features/social_event/modules/social_event_managers/social_event_managers.module \social_event_managers_node_access_records()
Implements hook_node_access_records().
File
- modules/
social_features/ social_event/ modules/ social_event_managers/ social_event_managers.module, line 81 - Contains social_event_managers.module.
Code
function social_event_managers_node_access_records(NodeInterface $node) {
$grants = [];
// Only for events.
if ($node
->getType() === 'event') {
// Event organizers should be granted access.
foreach ($node
->get('field_event_managers')
->getValue() as $eventmanager) {
// Load the event managers account.
if ($account = User::load($eventmanager['target_id'])) {
// Event organizers must have access
// to view the record in the first place.
if ($node
->access('view', $account)) {
// Add grant.
$grants[] = [
'realm' => 'social_event_managers:' . $node
->id(),
'gid' => $eventmanager['target_id'],
'grant_view' => 1,
'grant_update' => 1,
'grant_delete' => 0,
];
}
}
}
}
return $grants;
}