กำหนด roles ให้กับ user ใหม่อัตโนมัติใน drupal 7

drupalSunday, December 23, 2012 - 14:19

ผมได้รับงานพัฒนาเว็บ drupal มาทำเว็บหนึ่ง (ไว้เดียววันหลังค่อยมาโชว์ เลือกใช้ drupal 7 ทำ) โดยตัวเว็บจะมีการกำหนดบทบาท (roles) ของผู้ใช้งาน (user) ไว้หลายแบบเช่น moderator, writer และ member ซึ่งใน drupal เมื่อเวลามีการสมัครสมาชิกเข้ามาใหม่ทุกคนจะได้สิทธิ์ authenticated user โดยทันที แต่ผมอยากให้เขาได้สิทธิ์ member เข้าไปด้วยทำไงดีละ?

ตอนแรกผมก็คิดว่ามันน่าจะมีคนทำโมดูลมาให้ใช้แล้วคงไม่ยากเท่าไร โมดูลมันชื่อว่า Auto Assign Role โอ้...แค่ชื่อมันก็ตรงกับความต้องการเรามาก แต่!!!...มันดันมีแต่ของ drupal 6 และในส่วนของ drupal 7 มันยังคงอยู่ในช่วงพัฒนา -_-! งานงอกเลยครับต้องหาวิธีอื่นต่อไป

ในที่สุดผมก็เจอวิธีที่จะทำในสิ่งที่ผมต้องการได้ครับ โดยเราจะใช้โมดูลสองตัวนี้ช่วยครับ

วิธีเพิ่ม roles ให้กับผู้ใช้งานหน้าใหม่ (user) ใน drupal 7

  1. โหลดและติดตั้งโมดูลทั้งสองตัวที่กล่าวไว้ข้างต้นมาครับ rules และ entity api
  2. เข้าไปที่หน้าตั้งค่าของ rules เลยครับ admin/config/workflow/rules
  3. กด Add new rule เพื่อทำการสร้างใหม่ โดยในช่อง
    - Name : กำหนดชื่อของ rule ที่จะสร้างครับ ของผมก็จะเป็น autorole to new user
    React on event : เป็นการกำหนดให้ rule ดังกล่าวทำงานตอนช่วงไหน ของผมก็จะเลือกให้ทำหลังจากสร้าง user ใหม่ก็คือ After saving a new user account
    add new rules
  4. ต่อมาในส่วนของ Conditions เป็นการกำหนดเงื่อนไขของ rule ที่เราสร้างมาว่าให้มันทำอะไรต่อ ซึ่งผมก็จะเลือก Data comparison
     Data comparison
  5. Data selector ให้เลือก account:mail ครับ
    Data selector
  6. Operator เลือกเป็น is one of
    operator
  7. Data value ให้คลิกที่ Switch to the direct input mode ก่อนครับ
    data value
  8. จากนั้นในช่อง value ให้ใส่ค่า [account:mail] ลงไปแล้วกด save
    data value save
  9. อธิบายในส่วนของ Conditions มันก็คือการกำหนดเงื่อนไขว่าให้ทำอะไรซึ่งผมก็เลือกให้หลังจากทำการสมัครสมาชิกใหม่แล้ว ให้มันเปรียบเทียบข้อมูล email ผู้ใช้งานกันเองถ้าตรงกันก็จบ และให้มันทำในส่วนของ action ต่อไป...
    condition rules drupal 7
  10. มาถึงในส่วนของ Actions แล้วนะครับว่าจะให้มันทำอะไรให้เรา ซึ่งแน่นอนครับก็ต้องให้มันเพิ่ม role member ให้กับสมาชิกใหม่ ให้เราคลิกที่ Add action จากนั้นเลือก Add user role
    add user role action
  11. ในส่วนของ Roles เลือกตามสะดวกครับว่าจะให้มันเพิ่ม role ไหนให้กับสมาชิกใหม่
    add member roles
  12. จากนั้น Save rules ที่เราสร้างมาครับเป็นอันจบ...

อันนี้เป็นเพียงวิธีใช้งาน rules เพื่อให้มันกำหนด role ให้กับสมาชิกใหม่อัตโนมัตินะครับซึ่งเจ้าตัว rules เนี้ยถ้าศึกษาจริงๆผมว่ามันจะมีประโยชน์มากเลยครับ เดียวถ้ามีกรณีตัวอย่าง (case study) แบบอื่นอีกเดียวจะมานำเสนอใหม่นะครับ :)

แนะนำให้อ่าน

แสดงความคิดเห็น