Score:0

จะให้สิทธิ์เข้าถึงไฟล์ส่วนตัวโดยทางโปรแกรมได้อย่างไร

ธง us

ฉันทำงานภายใต้แนวคิดที่ว่าฉันสามารถใช้ hook_file_download เพื่อให้สิทธิ์การเข้าถึงไฟล์ส่วนตัว แต่ดูเหมือนว่า hook นี้จะใช้เพื่อจำกัดการเข้าถึงไฟล์เท่านั้น ไม่ใช่เพื่อให้สิทธิ์การเข้าถึง

ฉันได้เห็นคำแนะนำของ hooks อื่น ๆ เช่น file_access และ file_access_alter; แต่ไม่มีสิ่งเหล่านี้อยู่อีกต่อไป

Kevin avatar
in flag
หากคุณไม่ส่งคืน -1 สำหรับ 'การตรวจสอบ' ที่แตกต่างกันใน hook_file_download นั่นไม่ใช่การให้สิทธิ์การเข้าถึงโดยทั่วไปใช่หรือไม่ `หากผู้ใช้ไม่ได้รับอนุญาตให้เข้าถึงไฟล์ ให้คืนค่า -1 หากผู้ใช้มีสิทธิ์ ให้ส่งคืนอาร์เรย์ที่มีส่วนหัวที่เหมาะสม `
liquidcms avatar
us flag
สำหรับคำถามแรกของคุณ ไม่ ไม่ใช่วิธีการทำงาน โมดูลทั้งหมดส่งคืนผลลัพธ์เพื่อสร้างอาร์เรย์ซึ่งตรวจสอบโดยฟังก์ชันดาวน์โหลดในคอร์ หากโมดูลใด ๆ (เช่นโมดูลไฟล์หลัก) ส่งคืน -1; ไม่สำคัญว่าโมดูลที่กำหนดเองของฉันจะส่งคืนอะไรเนื่องจากมี -1 อยู่ในอาร์เรย์และทำให้การเข้าถึงถูกปฏิเสธ ดังที่ฉันได้กล่าวไว้ข้างต้น ฉันสามารถจำกัดการเข้าถึงในโค้ดของฉันได้ แต่ฉันไม่สามารถอนุญาตได้
cn flag
ใช่ คุณสามารถใช้เพื่อให้สิทธิ์การเข้าถึง (ตามส่วนหัวตามที่เควินกล่าวถึง) แต่คุณไม่สามารถใช้เพื่อเพิกเฉย/ลบล้างการตัดสินใจที่ชัดเจนของโมดูลอื่นเพื่อปฏิเสธการเข้าถึง โปรดจำไว้ว่าโมดูลสามารถคืนค่า `NULL` ได้หากพวกเขาไม่มีส่วนได้เสียในไฟล์ ดังนั้นการตัดสินใจอย่างชัดเจนที่จะปฏิเสธควรได้รับการปฏิบัติตามโดยค่าเริ่มต้น หากคุณไม่ไว้วางใจหรือไม่สามารถพึ่งพาการตัดสินใจของโมดูลอื่นได้ คุณสามารถทำให้สั้นลงได้โดยใช้ hook_module_implements_alter เพื่อลบการใช้งาน hook_file_download ของโมดูลทั้งหมด
liquidcms avatar
us flag
คุณไม่สามารถใช้ hook นี้อย่างชัดเจนเพื่อให้สิทธิ์การเข้าถึง (อย่างที่ฉันพูด) การปฏิเสธมีความสำคัญ ที่ถูกกล่าวว่าฉันคิดว่าฉันไปผิดนี้ การเข้าถึงไฟล์ส่วนตัวถูกกำหนดโดยการเข้าถึงของเอนทิตีที่แนบมาด้วย และนั่นคือปัญหา เหตุใดลูกค้าของฉันจึงต้องการอนุญาตให้เข้าถึงไฟล์ ไม่ใช่เอนทิตีที่แนบมาด้วย เราจะเรียงลำดับความต้องการนั้น แต่ถ้าเป็นกรณีนี้จริง มีโมดูลที่อนุญาตการเข้าถึงตามบทบาทไปยังไฟล์ส่วนตัว (แต่ด้วยเหตุผลที่ระบุไว้ข้างต้น มันอาจจะใช้งานไม่ได้) สิ่งนี้จะเปิดรับผู้คนมากกว่าที่ต้องการ แต่สามารถใช้เบ็ดเพื่อจำกัด

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา