ทำให้บางหน้าพร้อมใช้งานสำหรับผู้ใช้ที่เข้าสู่ระบบเท่านั้น


9

ฉันต้องการความช่วยเหลือและนี่คือปัญหา:

ฉันกำลังสร้างเว็บไซต์โดยใช้ Drupal 7

ฉันต้องทำให้ผู้ใช้ที่ลงชื่อเข้าใช้บางหน้าเห็นได้เฉพาะ (แต่ละคนมีชื่อผู้ใช้ / รหัสผ่านของตนเอง) ผู้ใช้รายอื่นควรเปลี่ยนเส้นทางหรือแสดงข้อผิดพลาด ฟังก์ชั่นนี้อาจรวมอยู่ใน Drupal 7 หรือมีโมดูลที่ทำสิ่งนี้ (บางอย่างง่ายกว่ากลุ่มออร์แกนิก) หรือไม่?

คำตอบ:


7

คุณต้องใช้โมดูลการเข้าถึงเนื้อหาสำหรับสิทธิ์การรับชมโหนดแบบละเอียด

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


โมดูลนั้นยังไม่ได้รับการอัปเดตตั้งแต่ปี 2013 และอธิบายว่า "ยังไม่ถือว่าเสถียร" สนใจที่จะแนะนำอย่างใดอย่างหนึ่งที่ยังคงอยู่ในปัจจุบัน?
Blazemonger

1

หากคุณต้องการทำมันโดยทางโปรแกรมภายในโมดูลหรือโหนด (w / PHP Filter Filter) คุณสามารถใช้user_is_logged_in ()สำหรับสิ่งนี้:

<?php
if (!user_is_logged_in()) drupal_not_found();
?>

0

แม้ว่าโมดูลการเข้าถึงเนื้อหาแก้ปัญหาได้ดี แต่เป็นโมดูลเพิ่มเติมและยังไม่เสถียรใน D7

ทางเลือกที่ใช้เฉพาะโมดูลที่ใช้กันทั่วไปคือ:

  1. สร้างโหนด แต่ตั้งค่าเป็นยกเลิกการเผยแพร่

  2. สร้างมุมมองโหนดเช่น "เนื้อหาที่ จำกัด บทบาท" แสดงเนื้อหาของโหนดแบบเต็มเพื่อทำซ้ำการแสดงผลโหนด /% มาตรฐาน

  3. จำกัด มุมมองตามบทบาทที่คุณต้องการ (เช่น "บทบาท | ผู้ใช้ที่ผ่านการรับรองความถูกต้อง")

  4. กำหนดเส้นทางมุมมองเป็นดังนี้:

    restricted-content/%
  5. ตั้งค่าตัวกรองเชิงบริบทโดย Nid

  6. ลบตัวกรอง "เนื้อหาที่เผยแพร่" เริ่มต้น

ตอนนี้คุณจะมีมุมมองที่ทำงานคล้ายกับโหนด /% ยกเว้นว่าจะจัดการเนื้อหาที่ไม่ได้เผยแพร่และ จำกัด ตามบทบาท


1
มุมมองจะแสดงรายการของโหนดแม้ว่าพวกเขาจะไม่ถูกเผยแพร่ แต่ผู้ใช้ที่ไม่มีสิทธิ์ที่ถูกต้องก็ยังไม่สามารถเข้าถึงโหนดได้
kiamlaluno

-1

มีวิธีแก้ปัญหาทางโปรแกรมที่ง่ายคุณสามารถอ่านบทบาทผู้ใช้ (และหากไม่ระบุชื่อหรือลงทะเบียน) เช่นนี้

$roles=$GLOBALS['user']->roles;

คุณจะได้รับอาร์เรย์ที่มีบทบาทของผู้ใช้ปัจจุบันในบทบาท $

คุณสามารถเปลี่ยนเส้นทางผู้ใช้นั้นขึ้นอยู่กับบทบาทด้วยตรรกะบางอย่างที่ใช้

drupal_goto ('url-of-the/page');
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.