สิทธิ์ & Roles

16

สิทธิ์การเข้าถึง (Roles & Permissions)

ระบบจัดการสิทธิ์แบบ Role-based ควบคุมการเข้าถึงเมนูและฟังก์ชันต่างๆ ได้อย่างละเอียด

ภาพรวมระบบสิทธิ์

ระบบสิทธิ์ของ Alicia ใช้แนวคิด Role-based Access Control (RBAC) โดยแต่ละ Role จะกำหนดสิทธิ์การเข้าถึงโมดูลต่างๆ ของระบบ ผู้ใช้แต่ละคนจะถูกกำหนด Role และได้รับสิทธิ์ตาม Role นั้นๆ

สร้าง Role
กำหนดสิทธิ์
กำหนด Role ให้ผู้ใช้
ผู้ใช้ได้สิทธิ์ตาม Role

4 บทบาทเริ่มต้น

ระบบมี 4 บทบาทเริ่มต้นที่สร้างมาให้พร้อมใช้งาน:

บทบาทสีคำอธิบายสิทธิ์หลัก
Admin แดง ผู้ดูแลระบบสูงสุด มีสิทธิ์ทุกอย่าง ทุกโมดูล: view, create, edit, delete, special
Staff น้ำเงิน เจ้าหน้าที่คลินิก dashboard, patients, appointments: view, create, edit
Dentist เขียว ทันตแพทย์ dashboard, patients, rooms, appointments: view, create, edit
Cashier ส้ม แคชเชียร์ / การเงิน dashboard, billing, medicines: view, create, edit
บทบาทเริ่มต้นทั้ง 4 สามารถแก้ไขสิทธิ์ได้ตามต้องการ และสามารถสร้างบทบาทใหม่เพิ่มเติมได้
ตัวอย่างหน้าจัดการ Roles

โครงสร้างสิทธิ์ (Module + Action)

สิทธิ์ในระบบ Alicia ประกอบด้วย 2 ส่วน:

  • Module (โมดูล): เมนูหรือหน้าที่ต้องการควบคุม เช่น dashboard, patients, rooms
  • Action (การดำเนินการ): สิ่งที่ผู้ใช้ทำได้กับโมดูลนั้น

ประเภท Action

Actionคำอธิบายตัวอย่าง
view ดูข้อมูล อ่านอย่างเดียว patients.view = ดูรายชื่อผู้ป่วย
create สร้างข้อมูลใหม่ patients.create = เพิ่มผู้ป่วยใหม่
edit แก้ไขข้อมูลที่มีอยู่ patients.edit = แก้ไขข้อมูลผู้ป่วย
delete ลบข้อมูล patients.delete = ลบผู้ป่วย
special สิทธิ์พิเศษเฉพาะบางโมดูล reports.special = ดูรายงานพิเศษ

รายการโมดูลทั้งหมด

โมดูลActions ที่มี
dashboardview, edit
patientsview, create, edit, delete
roomsview, create, edit, delete
appointmentsview, create, edit, delete
billingview, create, edit, delete
medicinesview, create, edit, delete
managementview, create, edit, delete
reportsview, special
settingsview, edit, special
rolesview, create, edit, delete
usersview, create, edit, delete

สร้าง / แก้ไข / ลบ Role

สร้าง Role ใหม่

กดปุ่ม "สร้าง Role ใหม่" เปิดฟอร์มสร้างบทบาทใหม่
ตั้งชื่อ Role พิมพ์ชื่อบทบาท เช่น "ผู้ช่วยทันตแพทย์" หรือ "เจ้าหน้าที่ต้อนรับ"
กำหนดสิทธิ์ ติ๊กเลือกสิทธิ์ที่ต้องการให้กับ Role นี้ ระบบจะแสดงตาราง Module x Action ให้เลือก
บันทึก Role ใหม่พร้อมใช้งาน สามารถกำหนดให้ผู้ใช้ได้ทันที

แก้ไข Role

คลิกที่ Role ที่ต้องการแก้ไข จากนั้นปรับเปลี่ยนสิทธิ์ตามต้องการ แล้วกดบันทึก การเปลี่ยนแปลงจะมีผลกับผู้ใช้ทุกคนที่อยู่ใน Role นี้ทันที

ลบ Role

สามารถลบ Role ที่ไม่ใช้งานแล้วได้ แต่ต้องย้ายผู้ใช้ออกจาก Role นั้นก่อน

ไม่สามารถลบ Role ที่ยังมีผู้ใช้อยู่ได้ ต้องย้ายผู้ใช้ไปยัง Role อื่นก่อน
ตัวอย่างตารางสิทธิ์ Module x Action

สิทธิ์เฉพาะผู้ใช้ (User-specific Overrides)

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

สิทธิ์เพิ่มเติม (Blue Badges)

สิทธิ์ที่เพิ่มให้ผู้ใช้เฉพาะบุคคล จะแสดงเป็น badge สีน้ำเงิน ในหน้าจัดการผู้ใช้ ซึ่งหมายความว่าสิทธิ์นี้ไม่ได้มาจาก Role แต่ถูกเพิ่มให้เป็นพิเศษ

ประเภทที่มาการแสดงผล
สิทธิ์จาก Role ได้รับอัตโนมัติจาก Role ที่กำหนด แสดงเป็น checkbox ปกติ
สิทธิ์เฉพาะผู้ใช้ (Override) กำหนดให้เป็นพิเศษเฉพาะผู้ใช้คนนี้ แสดงเป็น badge สีน้ำเงิน

ตัวอย่างการใช้งาน

  • พนักงาน Staff ท่านหนึ่งต้องการดูรายงานรายได้ด้วย: เพิ่มสิทธิ์ reports.view เฉพาะคนนี้
  • ทันตแพทย์ท่านหนึ่งต้องการดูรายงานพิเศษ: เพิ่มสิทธิ์ reports.special เฉพาะคนนี้
สิทธิ์เฉพาะผู้ใช้จะถูกนำมารวมกับสิทธิ์จาก Role ผู้ใช้จะได้รับสิทธิ์จากทั้ง 2 แหล่ง

การย้ายจากระบบสิทธิ์เดิม

หากระบบเดิมใช้การกำหนดสิทธิ์แบบเก่า (ไม่มี Role) ระบบ Alicia จะทำการย้ายข้อมูลอัตโนมัติ:

ตรวจสอบสิทธิ์เดิม ระบบจะอ่านสิทธิ์ที่ผู้ใช้แต่ละคนมีอยู่ในระบบเดิม
จับคู่กับ Role ที่ใกล้เคียง ระบบจะกำหนด Role ที่เหมาะสมให้อัตโนมัติ
สร้าง Override สำหรับสิทธิ์ที่ไม่ตรง สิทธิ์ที่ไม่ตรงกับ Role จะถูกสร้างเป็นสิทธิ์เฉพาะผู้ใช้ (Blue Badges)
ตรวจสอบผลลัพธ์ Admin ควรตรวจสอบสิทธิ์ของผู้ใช้แต่ละคนหลังการย้าย
การย้ายจากระบบสิทธิ์เดิมจะเกิดขึ้นครั้งเดียวเท่านั้น หลังจากนั้นระบบจะใช้ Role-based เป็นหลัก

สิทธิ์กับการแสดงผลเมนู

สิทธิ์ที่กำหนดมีผลต่อการแสดงผลเมนูในแถบด้านซ้าย (Sidebar):

  • เมนูที่ผู้ใช้ไม่มีสิทธิ์ view จะ ไม่แสดง ในแถบเมนู
  • เมนูที่ผู้ใช้มีเฉพาะสิทธิ์ view จะแสดง แต่ปุ่มเพิ่ม/แก้ไข/ลบจะถูกซ่อน
  • เมนูที่ผู้ใช้มีสิทธิ์ครบจะแสดงทุกปุ่มและฟังก์ชัน
เคล็ดลับ: หากผู้ใช้ไม่เห็นเมนูบางรายการ ให้ตรวจสอบสิทธิ์ view ของโมดูลนั้นใน Role หรือสิทธิ์เฉพาะผู้ใช้

สิทธิ์การเข้าถึงหน้านี้

การดำเนินการสิทธิ์ที่ต้องการ
ดูรายการ Rolesroles.view
สร้าง Role ใหม่roles.create
แก้ไข Roleroles.edit
ลบ Roleroles.delete