บทบาทและสิทธิ์แคชเชียร์
HandyCafe ใช้การควบคุมการเข้าถึงตามบทบาท (RBAC) เพื่อจัดการว่าพนักงานแต่ละคนสามารถดูและทำอะไรได้ภายในระบบ แคชเชียร์ทุกคนจะได้รับบทบาทและบทบาทนั้นกำหนดสิทธิ์ที่แน่นอนทั่วทั้งแอปพลิเคชัน
ประเภทบทบาท
HandyCafe มีบทบาท 3 ประเภท:
แอดมิน
บทบาทแอดมินให้สิทธิ์เข้าถึงทุกฟีเจอร์ในระบบโดยไม่จำกัด แอดมินสามารถจัดการแคชเชียร์ ดูรายงานทั้งหมด แก้ไขการตั้งค่า และดำเนินการใดก็ได้ บทบาทนี้เหมาะสำหรับเจ้าของร้านคาเฟ่และผู้จัดการอาวุโสที่ต้องการการควบคุมเต็มรูปแบบ
ระบบจะมีบัญชีแอดมินอย่างน้อยหนึ่งบัญชีเสมอ บทบาทแอดมินไม่สามารถลบหรือลดสิทธิ์ได้
ค่าเริ่มต้น
บทบาทค่าเริ่มต้นไม่มีสิทธิ์พิเศษ แคชเชียร์ที่มีบทบาทค่าเริ่มต้นสามารถเข้าสู่ระบบและดำเนินการพื้นฐานแต่ไม่สามารถเข้าถึงพื้นที่ที่จำกัด เช่น การจัดการสมาชิก การรายงาน หรือการกำหนดค่าคอนโซล ใช้เป็นจุดเริ่มต้นสำหรับพนักงานใหม่ที่ต้องจัดการงานพื้นฐานเท่านั้น
กำหนดเอง
บทบาทกำหนดเองช่วยให้คุณกำหนดสิทธิ์ที่แคชเชียร์มีได้อย่างแม่นยำ คุณตั้งชื่อ กำหนดระดับ แล้วเลือกหรือยกเลิกแฟล็กสิทธิ์แต่ละรายการใน 6 หมวดหมู่ ให้การควบคุมที่ละเอียดว่าพนักงานแต่ละคนสามารถเข้าถึงอะไร
หมวดหมู่สิทธิ์
HandyCafe มีแฟล็กสิทธิ์ 22 รายการจัดเป็น 6 หมวดหมู่ แฟล็กแต่ละรายการควบคุมการดำเนินการหรือมุมมองเฉพาะภายในระบบ
1. การยืนยันตัวตน (1 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| CLIENT_LOGIN | อนุญาตให้แคชเชียร์เข้าสู่ระบบเครื่อง PC ลูกข่าย (เริ่มเซสชันแทนลูกค้า) |
หากไม่มีสิทธิ์นี้ แคชเชียร์ไม่สามารถเริ่มหรือจัดการเซสชันลูกข่ายได้
2. สมาชิก (6 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| VIEW | ดูรายการสมาชิกและรายละเอียดสมาชิก |
| ADD | สร้างบัญชีสมาชิกใหม่ |
| DELETE | ลบบัญชีสมาชิกจากระบบ |
| UPDATE | แก้ไขข้อมูลสมาชิกที่มีอยู่ (ชื่อ ยอดคงเหลือ ฯลฯ) |
| DISPLAY_EMAIL | ดูที่อยู่อีเมลสมาชิกในรายการสมาชิก |
| DISPLAY_GSM | ดูหมายเลขโทรศัพท์สมาชิกในรายการสมาชิก |
แคชเชียร์ที่มีเฉพาะ VIEW สามารถดูรายการสมาชิกได้แต่ไม่สามารถสร้าง แก้ไข หรือลบสมาชิก แฟล็ก DISPLAY_EMAIL และ DISPLAY_GSM ควบคุมว่าข้อมูลติดต่อที่ละเอียดอ่อนจะแสดงหรือไม่ มีประโยชน์สำหรับการปฏิบัติตามกฎความเป็นส่วนตัวที่พนักงานบางคนไม่ควรเห็นข้อมูลส่วนบุคคล
3. คอนโซล (4 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| VIEW | ดูหน้าคอนโซลและการ์ดสถานะคอนโซล |
| ADD | ลงทะเบียนคอนโซลเกมใหม่ในระบบ |
| DELETE | ลบคอนโซลจากระบบ |
| UPDATE | แก้ไขรายละเอียดคอนโซล (ชื่อ MAC address การตั้งราคา) |
4. บันทึก (4 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| VIEW | เข้าถึงหน้าบันทึก |
| DISPLAY_FULL | ดูประวัติบันทึกทั้งหมด (ทุกวันที่) |
| DISPLAY_TODAY | ดูเฉพาะรายการบันทึกของวันนี้ |
| DELETE | ลบรายการบันทึก |
หากแคชเชียร์มี VIEW และ DISPLAY_TODAY แต่ไม่มี DISPLAY_FULL จะดูได้เฉพาะรายการบันทึกของวันปัจจุบัน มีประโยชน์สำหรับหัวหน้ากะที่ต้องตรวจสอบกิจกรรมปัจจุบันโดยไม่เข้าถึงบันทึกย้อนหลัง
5. รายงาน (3 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| PAGE_VIEW | เข้าถึงหน้ารายงาน/รายงานเงินสด |
| DISPLAY_FULL | ดูประวัติรายงานทั้งหมด (ทุกวันที่) |
| DISPLAY_TODAY | ดูเฉพาะข้อมูลรายงานของวันนี้ |
คล้ายกับบันทึก สิทธิ์รายงานให้คุณควบคุมว่าพนักงานสามารถดูประวัติการเงินทั้งหมดหรือเฉพาะตัวเลขของวันปัจจุบัน แคชเชียร์ที่มี PAGE_VIEW และ DISPLAY_TODAY สามารถตรวจสอบธุรกรรมของกะตัวเองแต่ไม่สามารถเข้าถึงข้อมูลรายได้ย้อนหลัง
6. วิธีการชำระเงิน (4 แฟล็ก)
| แฟล็ก | คำอธิบาย |
|---|---|
| MANAGE | เข้าถึงพื้นที่จัดการวิธีการชำระเงิน |
| ADD | สร้างวิธีการชำระเงินใหม่ (เงินสด บัตร การชำระผ่านมือถือ ฯลฯ) |
| DELETE | ลบวิธีการชำระเงินจากระบบ |
| UPDATE | แก้ไขรายละเอียดวิธีการชำระเงินที่มีอยู่ |
สรุป
| หมวดหมู่ | แฟล็ก | จำนวน |
|---|---|---|
| การยืนยันตัวตน | CLIENT_LOGIN | 1 |
| สมาชิก | VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM | 6 |
| คอนโซล | VIEW, ADD, DELETE, UPDATE | 4 |
| บันทึก | VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE | 4 |
| รายงาน | PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY | 3 |
| วิธีการชำระเงิน | MANAGE, ADD, DELETE, UPDATE | 4 |
| รวม | 22 |
วิธีการทำงานของสิทธิ์
แต่ละหมวดหมู่สิทธิ์มีชุดแฟล็กสิทธิ์แต่ละรายการ แฟล็กแต่ละรายการสามารถเปิดหรือปิดได้อย่างอิสระโดยใช้กล่องเลือกในตัวแก้ไขบทบาท
UI แสดงกล่องเลือกสำหรับแต่ละสิทธิ์ เพียงเลือกหรือยกเลิกสิทธิ์ที่คุณต้องการให้หรือถอน ระบบจัดการการจัดเก็บข้อมูลพื้นฐานอัตโนมัติ คุณไม่ต้องคำนวณค่าใดด้วยตนเอง
ตัวอย่าง ในหมวดหมู่สมาชิก คุณสามารถเปิดหรือปิดได้อย่างอิสระ: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL และ DISPLAY_GSM แคชเชียร์ที่เลือกเฉพาะ VIEW และ UPDATE จะสามารถดูและแก้ไขสมาชิกได้ แต่ไม่สามารถเพิ่มหรือลบได้
การสร้างบัญชีแคชเชียร์
- ไปที่ การจัดการ > แคชเชียร์ ในแอปพลิเคชันเซิร์ฟเวอร์
- คลิกปุ่ม เพิ่มแคชเชียร์
- ป้อน ชื่อผู้ใช้ ของแคชเชียร์ ซึ่งเป็นสิ่งที่ใช้เข้าสู่ระบบ
- ตั้ง รหัสผ่าน เลือกรหัสผ่านที่แข็งแกร่ง บัญชีนี้อาจเข้าถึงข้อมูลทางการเงินและข้อมูลลูกค้า
- เลือก บทบาท จากรายการเลื่อนลง คุณสามารถเลือกแอดมิน ค่าเริ่มต้น หรือบทบาทกำหนดเองที่คุณสร้าง
- คลิก บันทึก เพื่อสร้างบัญชี
แคชเชียร์ใหม่สามารถเข้าสู่ระบบเซิร์ฟเวอร์ HandyCafe ด้วยข้อมูลประจำตัวได้ทันที
การสร้างบทบาทกำหนดเอง
- ไปที่ การจัดการ > บทบาทแคชเชียร์ ในแอปพลิเคชันเซิร์ฟเวอร์
- คลิกปุ่ม เพิ่มบทบาท
- ป้อน ชื่อบทบาท (เช่น "หัวหน้ากะ", "แคชเชียร์ระดับต้น", "พนักงานกะดึก")
- ตั้ง ระดับบทบาท ระดับสูงกว่าบ่งบอกอำนาจมากกว่า ใช้สำหรับการเรียงลำดับการแสดงผลและลำดับชั้นองค์กร
- เลือกหรือยกเลิกสิทธิ์แต่ละรายการใน 6 หมวดหมู่ กล่องเลือกแต่ละอันสอดคล้องกับการตั้งค่าสิทธิ์ 22 รายการ
- คลิก บันทึก เพื่อสร้างบทบาท
เมื่อสร้างแล้ว คุณสามารถกำหนดบทบาทนี้ให้กับบัญชีแคชเชียร์ใดก็ได้
การบังคับใช้ฝั่งเซิร์ฟเวอร์
สิทธิ์ถูกบังคับใช้ฝั่งเซิร์ฟเวอร์ ไม่ใช่แค่ซ่อนใน UI แม้มีคนข้ามส่วนติดต่อไคลเอนต์หรือแก้ไขโค้ดส่วนหน้า เซิร์ฟเวอร์จะตรวจสอบทุกคำขอเทียบกับสิทธิ์บทบาทของแคชเชียร์ก่อนดำเนินการ
ซึ่งหมายความว่า:
- แคชเชียร์ที่ไม่มี MEMBER_DELETE ไม่สามารถลบสมาชิกได้ แม้จะส่งคำขอ API โดยตรง
- แคชเชียร์ที่ไม่มี REPORT_DISPLAY_FULL ไม่สามารถดึงข้อมูลรายงานย้อนหลังได้ ไม่ว่าจะเข้าถึงระบบอย่างไร
- การตรวจสอบสิทธิ์ทั้งหมดเกิดขึ้นในแบ็กเอนด์ Rust ก่อนดำเนินการฐานข้อมูลใด
ความปลอดภัย: การจำกัดอัตรา
เพื่อป้องกันการโจมตีแบบเดารหัสผ่าน HandyCafe บังคับใช้การจำกัดอัตราการเข้าสู่ระบบ:
- ล้มเหลว 5 ครั้ง ภายใน 10 นาที จะเริ่มการล็อกอัตโนมัติ
- การล็อกกิน 15 นาที ซึ่งระหว่างนั้นไม่รับการเข้าสู่ระบบสำหรับบัญชีนั้น
- หลังจากช่วงล็อกหมดอายุ แคชเชียร์สามารถลองอีกครั้ง
ใช้กับทั้งหน้าจอเข้าสู่ระบบเซิร์ฟเวอร์และการเข้าสู่ระบบแคชเชียร์บนเครื่อง PC ลูกข่าย
การจัดการกะ
กิจกรรมของแคชเชียร์แต่ละคนถูกติดตามเป็นรายบุคคลตลอดกะ:
- ธุรกรรมทั้งหมด (การชำระเซสชัน การชำระคำสั่งซื้อ ฯลฯ) ถูกบันทึกพร้อมตัวตนแคชเชียร์
- เครื่องบันทึกเงินสดติดตามยอดคงเหลือเปิดและปิดสำหรับกะของแคชเชียร์แต่ละคนแยกกัน
- สามารถสร้างรายงานกะรายบุคคลแสดงว่าแคชเชียร์ดำเนินการรายได้เท่าไหร่ระหว่างกะ
- เมื่อแคชเชียร์ออกจากระบบ กะจะปิดและสรุปพร้อมให้ตรวจสอบ
การติดตามรายบุคคลนี้รับประกันความรับผิดชอบและทำให้ง่ายต่อการระบุส่วนต่างเมื่อสิ้นสุดแต่ละกะ
ตัวอย่างสิทธิ์
สถานการณ์ที่ 1: แคชเชียร์พื้นฐาน พนักงานใหม่ที่ต้องเริ่ม/หยุดเซสชันและรับชำระเงินเท่านั้น กำหนดบทบาทกำหนดเองที่เปิดเฉพาะ CLIENT_LOGIN ไม่สามารถดูสมาชิก รายงาน บันทึก หรือคอนโซล
สถานการณ์ที่ 2: หัวหน้ากะ พนักงานที่เชื่อถือได้ที่ดูแลหน้างาน กำหนดบทบาทที่มี CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW และ REPORT_DISPLAY_TODAY สามารถจัดการเซสชัน ดู (แต่ไม่ลบ) สมาชิก ดูคอนโซล และตรวจสอบรายได้วันนี้ แต่ไม่สามารถเข้าถึงรายงานย้อนหลังหรือแก้ไขวิธีการชำระเงิน
สถานการณ์ที่ 3: ผู้จัดการกะดึก ผู้จัดการที่จัดการกะดึกอย่างอิสระ ให้สิทธิ์ส่วนใหญ่ยกเว้น MEMBER_DELETE, LOG_DELETE และ PAYMENT_METHOD_DELETE สามารถจัดการทุกอย่างระหว่างกะแต่ไม่สามารถลบข้อมูลสำคัญอย่างถาวร
สถานการณ์ที่ 4: พนักงานที่จำกัดความเป็นส่วนตัว แคชเชียร์ที่ไม่ควรเห็นข้อมูลติดต่อลูกค้า สร้างบทบาทที่เปิด MEMBER_VIEW แต่ปิด DISPLAY_EMAIL และ DISPLAY_GSM สามารถค้นหาสมาชิกตามชื่อแต่ข้อมูลติดต่อส่วนบุคคลจะถูกซ่อน