ผู้ใช้ & สิทธิ์

ผู้ใช้ & สิทธิ์ (Users & Permissions)

จัดการบัญชีผู้ใช้ กำหนดบทบาท ตั้งค่าสิทธิ์การเข้าถึงแต่ละเมนูอย่างละเอียด

บทบาทผู้ใช้งาน (Roles)

ระบบมี 4 บทบาทเริ่มต้น สามารถปรับแต่งสิทธิ์ของแต่ละบทบาทได้:

👑
Admin

ผู้ดูแลระบบ — เข้าถึงได้ทุกเมนู ทุกฟังก์ชัน ข้ามการตรวจสอบสิทธิ์ทั้งหมด

💰
Cashier

พนักงานขาย — POS, ออเดอร์, ลูกค้า, เครดิต, ใบเสนอราคา

📦
Stock

พนักงานคลัง — สินค้า, หมวดหมู่, รับเข้า, เบิกออก, นับสต็อก

📊
Report

ดูรายงาน — ดูข้อมูลรายงานยอดขาย กำไร สินค้า (อ่านอย่างเดียว)

ตารางสิทธิ์เริ่มต้น

สิทธิ์เริ่มต้นของแต่ละบทบาท (Admin สามารถปรับแต่งได้):

เมนู Admin Cashier Stock Report
แดชบอร์ด
POS
สินค้าดูดู
หมวดหมู่
คำสั่งซื้อดู
ลูกค้าดู
เครดิต
ใบเสนอราคา
รับเข้าสินค้า
เบิกออกสินค้า
นับสต็อก
รายงาน
จัดการผู้ใช้
ตั้งค่าระบบ

= เข้าถึงได้ทั้งหมด (ดู/เพิ่ม/แก้ไข/ลบ)  |  ดู = ดูข้อมูลได้อย่างเดียว  |  = ไม่มีสิทธิ์เข้าถึง

ระดับสิทธิ์

แต่ละเมนูมี 4 ระดับสิทธิ์ที่ปรับแต่งได้อิสระ:

สิทธิ์ชื่อในระบบความหมาย
ดู (View)can_viewเปิดหน้าและดูข้อมูลได้
สร้าง (Create)can_createเพิ่มข้อมูลใหม่ได้
แก้ไข (Edit)can_editแก้ไขข้อมูลที่มีอยู่ได้
ลบ (Delete)can_deleteลบข้อมูลได้
💡
Admin ข้ามการตรวจสอบสิทธิ์ทั้งหมด — ไม่ว่าจะตั้งค่าอย่างไร Admin เข้าถึงได้ทุกอย่างเสมอ

เพิ่มผู้ใช้ใหม่

ไปที่เมนู "จัดการผู้ใช้" เปิดหน้าจัดการผู้ใช้ (เฉพาะ Admin)
คลิก "เพิ่มผู้ใช้" กรอกข้อมูลดังนี้:
ฟิลด์คำอธิบายเงื่อนไข
Usernameชื่อผู้ใช้สำหรับล็อกอิน4-50 ตัวอักษร, a-z 0-9 _ เท่านั้น, ไม่ซ้ำ
อีเมลอีเมลของผู้ใช้รูปแบบอีเมลถูกต้อง, ไม่ซ้ำ
รหัสผ่านรหัสผ่านสำหรับล็อกอินอย่างน้อย 8 ตัวอักษร
ยืนยันรหัสผ่านพิมพ์รหัสผ่านอีกครั้งต้องตรงกับรหัสผ่าน
ชื่อ-นามสกุลชื่อจริงสำหรับแสดงในระบบจำเป็น
โทรศัพท์เบอร์โทรติดต่อไม่บังคับ
บทบาทเลือกบทบาท (Admin/Cashier/Stock/Report)จำเป็น
สถานะเปิด/ปิดใช้งานบัญชีค่าเริ่มต้น: เปิด

ปรับแต่งสิทธิ์บทบาท

ไปที่เมนู "จัดการผู้ใช้" เปิดหน้าจัดการผู้ใช้
เลือกแท็บ "บทบาท & สิทธิ์" แสดงรายการบทบาททั้งหมดพร้อมตารางสิทธิ์
คลิกแก้ไขบทบาท เปิดตารางสิทธิ์ทั้งหมดของบทบาทนั้น
เปิด/ปิดสิทธิ์แต่ละเมนู ติ๊กถูก/เอาถูกออก สำหรับ can_view, can_create, can_edit, can_delete ในแต่ละเมนู
บันทึก สิทธิ์มีผลทันทีสำหรับผู้ใช้ทุกคนในบทบาทนี้
⚠️
การเปลี่ยนสิทธิ์มีผลกับ ผู้ใช้ทุกคน ที่อยู่ในบทบาทนั้น ตรวจสอบให้รอบคอบก่อนบันทึก

จัดการผู้ใช้

เปิด/ปิดใช้งานบัญชี

คลิกปุ่มสถานะเพื่อเปิดหรือปิดใช้งานบัญชีผู้ใช้ — ผู้ใช้ที่ถูกปิดจะไม่สามารถล็อกอินได้

แก้ไขข้อมูลผู้ใช้

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 แยก