ผู้ใช้ & สิทธิ์ (Users & Permissions)
จัดการบัญชีผู้ใช้ กำหนดบทบาท ตั้งค่าสิทธิ์การเข้าถึงแต่ละเมนูอย่างละเอียด
บทบาทผู้ใช้งาน (Roles)
ระบบมี 4 บทบาทเริ่มต้น สามารถปรับแต่งสิทธิ์ของแต่ละบทบาทได้:
ผู้ดูแลระบบ — เข้าถึงได้ทุกเมนู ทุกฟังก์ชัน ข้ามการตรวจสอบสิทธิ์ทั้งหมด
พนักงานขาย — POS, ออเดอร์, ลูกค้า, เครดิต, ใบเสนอราคา
พนักงานคลัง — สินค้า, หมวดหมู่, รับเข้า, เบิกออก, นับสต็อก
ดูรายงาน — ดูข้อมูลรายงานยอดขาย กำไร สินค้า (อ่านอย่างเดียว)
ตารางสิทธิ์เริ่มต้น
สิทธิ์เริ่มต้นของแต่ละบทบาท (Admin สามารถปรับแต่งได้):
| เมนู | Admin | Cashier | Stock | Report |
|---|---|---|---|---|
| แดชบอร์ด | ✓ | ✓ | ✓ | ✓ |
| POS | ✓ | ✓ | ✗ | ✗ |
| สินค้า | ✓ | ดู | ✓ | ดู |
| หมวดหมู่ | ✓ | ✗ | ✓ | ✗ |
| คำสั่งซื้อ | ✓ | ✓ | ✗ | ดู |
| ลูกค้า | ✓ | ✓ | ✗ | ดู |
| เครดิต | ✓ | ✓ | ✗ | ✗ |
| ใบเสนอราคา | ✓ | ✓ | ✗ | ✗ |
| รับเข้าสินค้า | ✓ | ✗ | ✓ | ✗ |
| เบิกออกสินค้า | ✓ | ✗ | ✓ | ✗ |
| นับสต็อก | ✓ | ✗ | ✓ | ✗ |
| รายงาน | ✓ | ✗ | ✗ | ✓ |
| จัดการผู้ใช้ | ✓ | ✗ | ✗ | ✗ |
| ตั้งค่าระบบ | ✓ | ✗ | ✗ | ✗ |
✓ = เข้าถึงได้ทั้งหมด (ดู/เพิ่ม/แก้ไข/ลบ) | ดู = ดูข้อมูลได้อย่างเดียว | ✗ = ไม่มีสิทธิ์เข้าถึง
ระดับสิทธิ์
แต่ละเมนูมี 4 ระดับสิทธิ์ที่ปรับแต่งได้อิสระ:
| สิทธิ์ | ชื่อในระบบ | ความหมาย |
|---|---|---|
| ดู (View) | can_view | เปิดหน้าและดูข้อมูลได้ |
| สร้าง (Create) | can_create | เพิ่มข้อมูลใหม่ได้ |
| แก้ไข (Edit) | can_edit | แก้ไขข้อมูลที่มีอยู่ได้ |
| ลบ (Delete) | can_delete | ลบข้อมูลได้ |
เพิ่มผู้ใช้ใหม่
| ฟิลด์ | คำอธิบาย | เงื่อนไข |
|---|---|---|
| Username | ชื่อผู้ใช้สำหรับล็อกอิน | 4-50 ตัวอักษร, a-z 0-9 _ เท่านั้น, ไม่ซ้ำ |
| อีเมล | อีเมลของผู้ใช้ | รูปแบบอีเมลถูกต้อง, ไม่ซ้ำ |
| รหัสผ่าน | รหัสผ่านสำหรับล็อกอิน | อย่างน้อย 8 ตัวอักษร |
| ยืนยันรหัสผ่าน | พิมพ์รหัสผ่านอีกครั้ง | ต้องตรงกับรหัสผ่าน |
| ชื่อ-นามสกุล | ชื่อจริงสำหรับแสดงในระบบ | จำเป็น |
| โทรศัพท์ | เบอร์โทรติดต่อ | ไม่บังคับ |
| บทบาท | เลือกบทบาท (Admin/Cashier/Stock/Report) | จำเป็น |
| สถานะ | เปิด/ปิดใช้งานบัญชี | ค่าเริ่มต้น: เปิด |
ปรับแต่งสิทธิ์บทบาท
จัดการผู้ใช้
เปิด/ปิดใช้งานบัญชี
คลิกปุ่มสถานะเพื่อเปิดหรือปิดใช้งานบัญชีผู้ใช้ — ผู้ใช้ที่ถูกปิดจะไม่สามารถล็อกอินได้
แก้ไขข้อมูลผู้ใช้
Admin สามารถแก้ไข: ชื่อ, อีเมล, โทรศัพท์, บทบาท, สถานะ และรีเซ็ตรหัสผ่าน
ดูประวัติการล็อกอิน
ระบบบันทึกประวัติการล็อกอินทุกครั้งในตาราง login_logs:
- วันที่-เวลาที่ล็อกอิน
- IP Address
- User Agent (เบราว์เซอร์)
- สถานะ: สำเร็จ / ล้มเหลว
ความปลอดภัย
| มาตรการ | รายละเอียด |
|---|---|
| เข้ารหัสรหัสผ่าน | Bcrypt (cost=12) — รหัสผ่านไม่ถูกเก็บแบบ Plain Text |
| CSRF Protection | ทุกฟอร์มมี CSRF Token ป้องกันการโจมตี |
| Session Regeneration | สร้าง Session ID ใหม่ทุกครั้งที่ล็อกอิน |
| SQL Injection Prevention | ใช้ PDO Prepared Statements ทั้งหมด |
| XSS Prevention | ใช้ htmlspecialchars() ทุกที่ที่แสดงข้อมูล |
| Login Logging | บันทึกทุกครั้งที่พยายามล็อกอิน (สำเร็จ/ล้มเหลว) |
แนวปฏิบัติที่ดี
- ใช้รหัสผ่านที่แข็งแรง — อย่างน้อย 8 ตัวอักษร ผสมตัวอักษร ตัวเลข และอักขระพิเศษ
- ให้สิทธิ์น้อยที่สุด — ให้เฉพาะสิทธิ์ที่จำเป็นต่อการทำงาน
- ปิดบัญชีที่ไม่ใช้ — หากพนักงานลาออก ให้ปิดใช้งานบัญชีทันที
- ตรวจสอบ Login Log — เช็คประวัติล็อกอินเป็นระยะ ดูว่ามีการพยายามล็อกอินที่ผิดปกติไหม
- แยกบัญชี Admin — อย่าใช้บัญชี Admin ในการขายหน้าร้าน สร้างบัญชี Cashier แยก