function social_event_managers_node_access_records in Open Social 8.7
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 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.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 198 - Contains social_event_managers.module.
Code
function social_event_managers_node_access_records(NodeInterface $node) {
$grants = [];
// Only for events.
if ($node
->getType() === 'event' && ($event_managers_ids = array_column($node
->get('field_event_managers')
->getValue(), 'target_id'))) {
// Event organizers should be granted access.
// Load the event managers accounts.
$users = User::loadMultiple($event_managers_ids);
foreach ($users as $event_manager) {
// Event organizers must have access
// to view the record in the first place.
if ($node
->access('view', $event_manager)) {
// Add grant.
$grants[] = [
'realm' => 'social_event_managers:' . $node
->id(),
'gid' => $event_manager
->id(),
'grant_view' => 1,
'grant_update' => 1,
'grant_delete' => 0,
];
}
}
}
return $grants;
}