สิทธิ์การเข้าถึง (Roles & Permissions)
ระบบจัดการสิทธิ์แบบ Role-based ควบคุมการเข้าถึงเมนูและฟังก์ชันต่างๆ ได้อย่างละเอียด
ภาพรวมระบบสิทธิ์
ระบบสิทธิ์ของ Alicia ใช้แนวคิด Role-based Access Control (RBAC) โดยแต่ละ 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 |
โครงสร้างสิทธิ์ (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 ที่มี |
|---|---|
dashboard | view, edit |
patients | view, create, edit, delete |
rooms | view, create, edit, delete |
appointments | view, create, edit, delete |
billing | view, create, edit, delete |
medicines | view, create, edit, delete |
management | view, create, edit, delete |
reports | view, special |
settings | view, edit, special |
roles | view, create, edit, delete |
users | view, create, edit, delete |
สร้าง / แก้ไข / ลบ Role
สร้าง Role ใหม่
แก้ไข Role
คลิกที่ Role ที่ต้องการแก้ไข จากนั้นปรับเปลี่ยนสิทธิ์ตามต้องการ แล้วกดบันทึก การเปลี่ยนแปลงจะมีผลกับผู้ใช้ทุกคนที่อยู่ใน Role นี้ทันที
ลบ Role
สามารถลบ Role ที่ไม่ใช้งานแล้วได้ แต่ต้องย้ายผู้ใช้ออกจาก Role นั้นก่อน
สิทธิ์เฉพาะผู้ใช้ (User-specific Overrides)
นอกจากสิทธิ์ที่ได้จาก Role แล้ว ยังสามารถกำหนดสิทธิ์เพิ่มเติมหรือจำกัดสิทธิ์เฉพาะผู้ใช้แต่ละคนได้:
สิทธิ์เพิ่มเติม (Blue Badges)
สิทธิ์ที่เพิ่มให้ผู้ใช้เฉพาะบุคคล จะแสดงเป็น badge สีน้ำเงิน ในหน้าจัดการผู้ใช้ ซึ่งหมายความว่าสิทธิ์นี้ไม่ได้มาจาก Role แต่ถูกเพิ่มให้เป็นพิเศษ
| ประเภท | ที่มา | การแสดงผล |
|---|---|---|
| สิทธิ์จาก Role | ได้รับอัตโนมัติจาก Role ที่กำหนด | แสดงเป็น checkbox ปกติ |
| สิทธิ์เฉพาะผู้ใช้ (Override) | กำหนดให้เป็นพิเศษเฉพาะผู้ใช้คนนี้ | แสดงเป็น badge สีน้ำเงิน |
ตัวอย่างการใช้งาน
- พนักงาน Staff ท่านหนึ่งต้องการดูรายงานรายได้ด้วย: เพิ่มสิทธิ์
reports.viewเฉพาะคนนี้ - ทันตแพทย์ท่านหนึ่งต้องการดูรายงานพิเศษ: เพิ่มสิทธิ์
reports.specialเฉพาะคนนี้
การย้ายจากระบบสิทธิ์เดิม
หากระบบเดิมใช้การกำหนดสิทธิ์แบบเก่า (ไม่มี Role) ระบบ Alicia จะทำการย้ายข้อมูลอัตโนมัติ:
สิทธิ์กับการแสดงผลเมนู
สิทธิ์ที่กำหนดมีผลต่อการแสดงผลเมนูในแถบด้านซ้าย (Sidebar):
- เมนูที่ผู้ใช้ไม่มีสิทธิ์
viewจะ ไม่แสดง ในแถบเมนู - เมนูที่ผู้ใช้มีเฉพาะสิทธิ์
viewจะแสดง แต่ปุ่มเพิ่ม/แก้ไข/ลบจะถูกซ่อน - เมนูที่ผู้ใช้มีสิทธิ์ครบจะแสดงทุกปุ่มและฟังก์ชัน
view ของโมดูลนั้นใน Role หรือสิทธิ์เฉพาะผู้ใช้สิทธิ์การเข้าถึงหน้านี้
| การดำเนินการ | สิทธิ์ที่ต้องการ |
|---|---|
| ดูรายการ Roles | roles.view |
| สร้าง Role ใหม่ | roles.create |
| แก้ไข Role | roles.edit |
| ลบ Role | roles.delete |