ฉันมีเมนูที่สร้างโมดูล (โดยใช้ไฟล์ yaml) พร้อมรายการเมนู 5 รายการข้อกำหนดของฉันไม่อนุญาตให้ฉันจำกัดการมองเห็นรายการเมนูตามบทบาท เนื่องจากสามารถเพิ่มบทบาทได้แบบไดนามิก ดังนั้นฉันต้องทำสิ่งนี้โดยใช้การอนุญาตเท่านั้น
สิ่งที่ฉันได้ลอง
(1) การจำกัดการเข้าถึงรายการเมนูโดยใช้การอนุญาตเส้นทาง - แสดงหน้าที่ถูกห้ามแต่ยังคงอนุญาตให้มองเห็นรายการเมนูที่ถูกจำกัด
โปรดดูไฟล์จริงของฉันด้านล่าง:
portal_hrm_core.links.menu.yml
portal_hrm_core.hrm_link:
ชื่อเรื่อง: 'ผู้จัดการฝ่ายทรัพยากรบุคคล'
ชื่อเส้นทาง: portal_hrm_core.hrm_link
menu_name: hcm
ขยาย: TRUE
portal_hrm_core.routing.yml
portal_hrm_core. hrm_link:
เส้นทาง: '/admin/hrm'
ค่าเริ่มต้น:
_controller: '\Drupal... systemAdminMenuBlockPage'
_title: 'การจัดการทรัพยากรมนุษย์'
ความต้องการ:
_permission: 'เข้าถึง hrm_core_job+access_hrm_core_employee'
(2) โมดูลการมีส่วนร่วม - การมองเห็นรายการเมนู
และ รายการเมนูต่อบทบาท
ทั้งสองอย่างนี้เป็นไปตามบทบาทเท่านั้นและไม่สามารถรองรับการอนุญาตได้
ฉันรู้ว่าฉันสามารถไปที่ระดับต่ำและใช้บางอย่างเช่น hook_preprocess_menu
แต่ดูเหมือนจะหนักไปสำหรับความต้องการง่ายๆ เช่น การพิจารณาว่าเบ็ดนั้นอาจถูกเรียกได้กี่ครั้ง
ขอคำแนะนำเพิ่มเติมด้วยคนค่ะ?
ขอบคุณ