วิธีการใช้“ ผู้ใช้เข้าสู่ระบบ” เป็นอาร์กิวเมนต์การเข้าถึงสำหรับ MENU_CALLBACK?


16

ฉันต้องการให้ผู้ใช้ลงชื่อเข้าใช้เพื่อเข้าถึง MENU_CALLBACK เฉพาะ

การทำงานต่อไปนี้ แต่สำหรับบัญชีผู้ดูแลระบบเท่านั้น ผู้ใช้ทั่วไปยังคงถูกปฏิเสธการเข้าถึง:

'access arguments' => array('user_is_logged_in')

จะต้องมีการโต้แย้งการเข้าถึงที่เพิ่งตรวจสอบผู้ใช้รับรองความถูกต้อง?


หากไม่มีวิธีการนี้ฉันจะสร้างการอนุญาตของตัวเองโดยใช้ hook_permission () และกำหนดผู้ใช้ที่ได้รับการรับรองความถูกต้องแล้ว
มิถุนายน

คำตอบ:


29

access argumentsสำหรับอาร์กิวเมนต์ที่จะถูกส่งผ่านไปยังฟังก์ชันการโทรกลับ ... คุณต้องใช้access callbackแทน:

'access callback' => 'user_is_logged_in'

เนื่องจากuser_is_logged_in()ไม่มีข้อโต้แย้งใด ๆ คุณจึงสามารถลบaccess argumentsรายการเมนูของคุณได้อย่างปลอดภัย

รหัสปัจจุบันของคุณใช้งานได้กับบัญชีผู้ดูแลระบบเท่านั้นเนื่องจากค่าเริ่มต้นaccess callbackคือuser_access()ซึ่งจะข้ามการตรวจสอบการเข้าถึงสำหรับผู้ใช้ 1


2
'access callback' => 'user_is_anonymous'ตรงข้ามแล้ว
leymannx

1
สำหรับ Drupal 8 ภายใต้ "ข้อกำหนด" ในไฟล์ YAML ของคุณให้เพิ่มสิ่งนี้: _role: 'authenticated'
coderama
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.