Score:-1

ฟิลด์ที่กำหนดเองของกฎ

ธง id

ฉันกำลังพัฒนาไซต์ Drupal ซึ่งผู้ดูแลระบบสร้างบัญชีผู้ใช้ สำหรับไซต์นี้ ผู้ดูแลระบบสร้างบัญชีผู้ใช้ เขากรอกข้อมูลในฟิลด์ด้วยค่าต่ำสุดที่เข้มงวด (นามสกุล, ชื่อ, จดหมาย)

เมื่อผู้ใช้เข้าสู่ระบบ ฉันต้องการให้ไซต์บังคับให้เขากรอกข้อมูลในฟิลด์ที่เหลือของโปรไฟล์

สำหรับสิ่งนี้ฉันต้องการใช้โมดูลกฎด้วย:

  • เหตุการณ์: ผู้ใช้ได้เข้าสู่ระบบ
  • เงื่อนไข: ค่าข้อมูลว่างเปล่า: ฟิลด์ที่กำหนดเอง
  • หนังบู๊: การเปลี่ยนเส้นทางหน้า (ผู้ใช้/[บัญชี: uid]/แก้ไข)

ปัญหาที่ฉันพบคือไม่สามารถเข้าถึงฟิลด์ศุลกากรของฉันในตัวเลือกข้อมูลได้

ใครรู้วิธีเข้าถึงช่องศุลกากรของฉันใน Rules บ้าง

fr flag
หมายเหตุ: คำอธิบายข้อความเกี่ยวกับวิธีที่คุณกำหนดค่ากฎของคุณนั้นไม่เพียงพอ เพราะในกรณีส่วนใหญ่ คำอธิบายจะขาดข้อมูลที่สำคัญไป สิ่งหนึ่งที่ขาดหายไปคือการป้อนค่าในตัวเลือกข้อมูลหรือโดยการป้อนข้อมูลโดยตรง - มีความแตกต่างอย่างมากระหว่าง 'โหนด' ที่ป้อนในตัวเลือกข้อมูลและ 'โหนด' ที่ป้อนในอินพุตโดยตรง ในอนาคต โปรดโพสต์การส่งออกกฎของคุณเมื่อถามคำถามหรือรายงานปัญหา - การส่งออกมีข้อมูลที่สมบูรณ์ที่จำเป็นสำหรับการผลิตซ้ำปัญหาของคุณ
fr flag
กฎใน Drupal 8 ไม่ใช้โทเค็นโมดูลโทเค็น คุณต้องใช้ไวยากรณ์ Twig แทน ในกรณีของคุณ ควรป้อนปลายทางการเปลี่ยนเส้นทางเป็น '/user/{{ account.uid.value }}/edit' โดยใช้การป้อนข้อมูลโดยตรง
Score:0
ธง fr

เหตุการณ์ 'ผู้ใช้ได้เข้าสู่ระบบ' ทำให้บริบทของเอนทิตีผู้ใช้สำหรับผู้ใช้ที่เพิ่งเข้าสู่ระบบ เอนทิตีผู้ใช้โดยตัวมันเองไม่มีฟิลด์ เอนทิตีผู้ใช้ที่มีฟิลด์เพิ่มเรียกว่าบันเดิล

หากต้องการเปิดเผยฟิลด์ของกลุ่มต่อกฎ คุณต้องใช้เงื่อนไข 'เอนทิตีเป็นของกลุ่ม' เงื่อนไขนี้ใช้สามอินพุต:

  1. เอนทิตีเฉพาะที่คุณกำลังตรวจสอบในกรณีการใช้งานของคุณ นี่ควรเป็นตัวแปร 'บัญชี' ที่เลือกโดยใช้ตัวเลือกข้อมูล
  2. ประเภทเอนทิตี นี่ควรเป็นชื่อเครื่องของประเภทเอนทิตีที่เลือกใน 1) ซึ่งในกรณีของคุณคือ 'ผู้ใช้' ที่ป้อนด้วยการป้อนข้อมูลโดยตรง
  3. ชื่อเครื่องของบันเดิล อีกครั้ง นี่จะเป็น 'ผู้ใช้' ที่ป้อนด้วยการป้อนข้อมูลโดยตรง

เงื่อนไขหรือการดำเนินการใด ๆ ที่เพิ่มหลังจากเงื่อนไข 'เอนทิตีเป็นบันเดิล' จะสามารถเข้าถึงฟิลด์ผู้ใช้ที่กำหนดเองได้

จำเป็นต้องมีขั้นตอนข้างต้นเพื่อแสดงฟิลด์ของบันเดิลใดๆ ต่อกฎ ซึ่งไม่ใช่สำหรับเอนทิตี 'ผู้ใช้' เท่านั้น

Monster971 avatar
id flag
ขอบคุณพี่ชาย มันได้ผล ! คุณมีวิธีที่ทำให้ผู้ใช้ไม่สามารถเข้าถึงหน้าอื่น ๆ จนกว่าจะกรอกข้อมูลในฟิลด์หรือไม่?
fr flag
ถ้ามันช่วยได้โปรดยอมรับคำตอบ! ดู https://stackoverflow.com/help/someone-answers
fr flag
เพื่อป้องกันการเข้าถึงหน้าอื่นๆ ฉันขอแนะนำให้กำหนดบทบาทให้กับผู้ใช้ที่มีโปรไฟล์ที่สมบูรณ์ ผู้ใช้ทั้งหมดที่ไม่มีบทบาทนั้นสามารถเปลี่ยนเส้นทางไปยังหน้าโปรไฟล์ได้เมื่อเข้าสู่ระบบ และสามารถป้องกันไม่ให้เข้าถึงเนื้อหาหรือสิ่งอื่นใดได้โดยการตั้งค่าสิทธิ์ในบทบาท "ผู้ใช้ที่ได้รับการรับรองความถูกต้อง" (ซึ่งเป็นบทบาทเริ่มต้น)

โพสต์คำตอบ

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