ฉันแค่ต้องการฟิลด์ในประเภทเนื้อหา เพื่อที่ว่าเมื่อผู้ใช้สร้างเนื้อหาใหม่ เขา/เธอสามารถเลือกได้ว่าจะให้ผู้ใช้ที่ผ่านการรับรองความถูกต้องรายอื่นดูเนื้อหานั้นหรือไม่ ฉันชอบทำสิ่งนี้กับฟิลด์การเลือกที่แสดง 'ซ่อน/มองเห็น' แก่ผู้ใช้รายอื่น จากนั้นตั้งค่าการเข้าถึงจริงในโมดูลที่กำหนดเองโดยใช้ตะขอ
นี่คือสิ่งที่ฉันได้ลองจนถึงตอนนี้ในการเข้าถึงเอนทิตี hook ของโมดูลที่กำหนดเองด้วยประเภทเนื้อหา test_adgang และการตรวจสอบ field_test_adgang แต่ไม่มีผลใด ๆ หมายความว่าผู้ใช้ที่ได้รับการรับรองความถูกต้องทั้งหมดยังสามารถเห็นได้ หากตั้งค่าฟิลด์เป็น 'skjult' (ซ่อนไว้)
<?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();
}
}
}
?>