function photos_access_node_access_records in Album Photos 6.0.x
Same name and namespace in other branches
- 8.5 photos_access/photos_access.module \photos_access_node_access_records()
- 8.4 photos_access/photos_access.module \photos_access_node_access_records()
- 7.3 photos_access/photos_access.module \photos_access_node_access_records()
Implements hook_node_access_records().
File
- photos_access/
photos_access.module, line 904 - Implementation of photos_access.module.
Code
function photos_access_node_access_records(NodeInterface $node) {
if (\Drupal::config('photos.settings')
->get('photos_access_' . $node
->getType())) {
if (isset($node->photos_privacy['vid'])) {
// @todo cleanup?
$acc['updateid'] = isset($node->photos_privacy['eid']) ? $node->photos_privacy['eid'] : 0;
$acc['viewid'] = isset($node->photos_privacy['viewid']) ? $node->photos_privacy['viewid'] : '';
$acc['vid'] = $node->photos_privacy['vid'];
}
else {
$acc = isset($_SESSION['photos_access_ac_' . $node
->id()]) ? $_SESSION['photos_access_ac_' . $node
->id()] : '';
}
if (isset($acc['vid']) || isset($acc['updateid'])) {
// Author has full access to all albums they create.
$grants[] = [
'realm' => 'photos_access_author',
'gid' => $node
->getOwnerId(),
'grant_view' => 1,
'grant_update' => 1,
'grant_delete' => 1,
'priority' => 0,
];
// If viewid is 1:locked, only author can view it.
if ($acc['viewid'] != 1) {
// Open is 0.
$photos_access_gid = 0;
if ($acc['viewid'] != 0) {
// If not open use {node}.nid.
$photos_access_gid = $node
->id();
}
$grants[] = [
'realm' => 'photos_access',
'gid' => $photos_access_gid,
'grant_view' => 1,
'grant_update' => 0,
'grant_delete' => 0,
'priority' => 0,
];
}
// Access for collaborators.
if (isset($acc['updateid']) && !empty($acc['updateid'])) {
$grants[] = [
'realm' => 'photos_access_update',
'gid' => $node
->id(),
'grant_view' => 1,
'grant_update' => 1,
'grant_delete' => 0,
'priority' => 0,
];
}
return $grants;
}
if (isset($_SESSION['photos_access_ac_' . $node
->id()])) {
unset($_SESSION['photos_access_ac_' . $node
->id()]);
}
}
}