จะเปลี่ยนเส้นทางผู้ใช้ที่ไม่ระบุชื่อไปยังหน้าเข้าสู่ระบบโดยใช้โมดูลกฎได้อย่างไร


12

ฉันใช้โมดูลกฎกับ drupal 7 เพื่อเปลี่ยนเส้นทางผู้ใช้ที่ไม่ระบุชื่อไปยังหน้าเข้าสู่ระบบดังนั้นฉันจึงสร้างกฎที่มีการตอบสนองต่อเหตุการณ์ "Drupal กำลังเริ่มต้น" เงื่อนไข "ผู้ใช้มีบทบาท" กับผู้ใช้ที่ไม่ระบุชื่อและ "จากนั้นเพิ่มการกระทำ" Page redirect "ไปยัง URL การเข้าสู่ระบบของเว็บไซต์ เมื่อฉันพยายามทดสอบกฎ drupal คอยเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบซ้ำไปซ้ำมาจนกระทั่งเซิร์ฟเวอร์ apache หยุดทำงาน คำแนะนำใด ๆ


ผู้ใช้ที่ไม่ระบุชื่อสามารถสำรวจเนื้อหาของไซต์ได้หรือไม่ เพราะเหตุใดจึงต้องเปลี่ยนเส้นทางหน้าเข้าสู่ระบบ
monymirza

ผู้ใช้ที่ไม่ระบุชื่อไม่ได้รับอนุญาตให้สำรวจเนื้อหาของไซต์ใด ๆ และไม่ได้รับอนุญาตให้ลงทะเบียนยกเว้นด้วยการเชิญ ผู้ใช้ต้องเข้าสู่ระบบเพื่อใช้เว็บไซต์
Aboodred1

ฉันไม่เข้าใจส่วนนี้ "กฎ drupal ยังคงเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบโดยไม่แสดง" คุณช่วยอธิบายสิ่งที่คุณหมายถึงอะไร มิฉะนั้นฉันไม่แน่ใจว่าฉันเข้าใจส่วนใดที่ไม่ทำงาน
Boriana Ditcheva

ดีเมื่อฉันไปที่หน้าแรกหรือหน้าอื่น ๆ แต่ไม่ใช่หน้าเข้าสู่ระบบกฎทำงานได้ดี; มันเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเข้าสู่ระบบ แต่เบราว์เซอร์ยังคงเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบซ้ำแล้วซ้ำอีกจนกว่า apache หยุดทำงาน
Aboodred1

หากผู้ใช้ที่ไม่ระบุตัวตนไม่ได้รับอนุญาตให้สำรวจเนื้อหาของไซต์ใด ๆ ให้ลบการอนุญาตเพื่อดูเนื้อหา
monymirza

คำตอบ:


12

วิธีที่ฉันแก้ไขมันดังต่อไปนี้:

  • เหตุการณ์: Drupal กำลังเริ่มต้น
  • เงื่อนไข:

    1. ผู้ใช้มีบทบาท -Parameter: User: [site:current-user], Roles: anonymous user
    2. ไม่เปรียบเทียบข้อความ -Parameter: Text: [site:current-page:url], Matching text: user/login
  • การกระทำ: การ เปลี่ยนเส้นทางหน้า -Parameter: URL: user/login


ส่งออกกฎดังนี้

{ "rules_login" : {
    "LABEL" : "login",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "login" ],
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "1" : "1" } }
        }
      },
      { "NOT text_matches" : { "text" : [ "site:current-page:url" ], "match" : "user\/login" } }
    ],
    "DO" : [ { "redirect" : { "url" : "user\/login" } } ]
  }
}

@TopTomato นี่สำหรับ drupal 7
Aboodred1

ฉันทำผิดพลาดและใช้งานได้
TopTomato

@TopTomato สุดยอด! ดีใจที่ได้ผลกับคุณ
Aboodred1

3

ไปที่/admin/people/permissionsยกเลิกการเลือกดูเนื้อหาที่เผยแพร่สำหรับผู้ใช้นิรนาม

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้ไปที่/admin/config/system/site-informationเพิ่ม 'ผู้ใช้' ในช่องหน้า (ปฏิเสธการเข้าถึง)

ป้อนคำอธิบายรูปภาพที่นี่


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

จากนั้นลบ 'ผู้ใช้' ออกจากช่องหน้า (ปฏิเสธการเข้าถึง) ที่ขั้นตอนที่ 2
monymirza

ถ้าฉันลบมัน ผู้ใช้ที่ไม่ระบุชื่อสามารถเห็นการเข้าถึงถูกปฏิเสธโดยไม่เปลี่ยนเส้นทางไปที่หน้าเข้าสู่ระบบ ฉันแน่ใจว่ามีวิธีที่ฉันสามารถทำได้ในโมดูลกฎ
Aboodred1

ใช่. เพิ่มเติมสามารถทำได้โดยโมดูลกฎ คุณสามารถทำได้ผ่านโมดูลคอร์ทริกเกอร์
monymirza

1
หากใครบางคนที่มีการเข้าถึงถูกปฏิเสธไม่ได้หมายความว่าพวกเขาไม่ได้เข้าสู่ระบบดูคำตอบนี้
Tanvir Ahmad

1

ฉันแน่ใจว่าคุณสามารถดึงสิ่งนี้ออกด้วยกฎ แต่มันจะง่ายในไฟล์ template.php ของชุดรูปแบบของคุณเช่นกัน

สิ่งนี้ควรใช้งานได้:

global $user;
if ($user->uid == 0 && arg(0) != 'user' && arg(1) != 'login'){
  drupal_goto('user/login');
}

หรือหากต้องการเข้าถึงหน้าผู้ใช้ / การลงทะเบียน & ผู้ใช้ / รหัสผ่าน:

global $user;
if ($user->uid == 0 && arg(0) != 'user'){
  drupal_goto('user/login');
}

ขอบคุณ @ โอกาสฉันพบโซลูชันนี้แล้วก่อนที่จะโพสต์คำถามของฉัน ฉันต้องการใช้โมดูลกฎหรืออย่างน้อยก็เข้าใจว่าทำไมมันไม่ทำงานกับ "Drupal กำลังเริ่มต้น"
Aboodred1

@ โอกาสฉันอยากรู้อยากเห็น ไฟล์นี้จะอยู่ที่ไหนในไฟล์. theme
TikaL13

0

ปัญหาที่นี่คือเหตุการณ์ที่เป็นปัญหา แทนที่จะพยายามDrupal is initializingContent is viewed


ฉันลองก่อนที่จะโพสต์คำถามนี้และทำงานได้ดีกับฉันยกเว้นกับหน้าดูหน้าลงทะเบียนโดยทั่วไปหน้าใด ๆ ที่ไม่ใช่โหนด
Aboodred1

0

ฉันรู้ว่านี่เป็นโพสต์จากสองปีที่ผ่านมา อย่างไรก็ตามโซลูชันสำหรับการเปลี่ยนเส้นทางผู้ใช้ที่ไม่ระบุชื่อไปยังหน้าเข้าสู่ระบบของผู้ใช้ที่มีกฎดังนี้:

  • เหตุการณ์: สร้างรายการบันทึกระบบ
  • เงื่อนไข: ผู้ใช้มีบทบาท: ไม่ระบุชื่อ
  • การดำเนินการ: ค่าการเปลี่ยนเส้นทางหน้า: ผู้ใช้

หวังว่านี่จะช่วยใครซักคน


คุณลองวิธีแก้ปัญหาก่อนโพสต์ที่นี่หรือไม่
Aboodred1
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.