Vreau doar un câmp într-un tip de conținut, astfel încât atunci când un utilizator creează conținut nou, el/ea poate selecta dacă acel conținut poate fi vizualizat de alți utilizatori autentificați sau nu. Prefer să fac acest lucru cu un câmp de selecție care afișează „ascuns/vizibil” pentru alți utilizatori și apoi setați accesul real într-un modul personalizat folosind un cârlig.
Acesta este ceea ce am încercat până acum în modul meu personalizat, accesul la entitate de cârlig cu tipul de conținut test_adgang și verificarea field_test_adgang, dar fără efect, ceea ce înseamnă că toți utilizatorii autentificați pot vedea în continuare, dacă câmpul este setat la „skjult” (ascuns).
<?php
use Drupal\Core\Access\AccessResult;
function import_functions_entity_access(\Drupal\Core\Entity\EntityInterface $entity, $operation, \Drupal\Core\Session\AccountInterface $account) {
if ($entity->bundle() == 'test_adgang') {
if ($entity->field_test_adgang->value == 'skjult' && $operation == 'view' && in_array('godkendt bruger', $account->getRoles())) {
return AccessResult::forbidden();
} elseif ($entity->field_test_adgang->value == 'synlig' && $operation == 'view' && in_array('godkendt bruger', $account->getRoles())) {
return AccessResult::allowed();
}
}
}
?>