403 Forbidden — ทำไมเข้าไม่ได้
HTTP 403 Forbidden = "เรารู้ว่าคุณเป็นใคร แต่คุณไม่มีสิทธิ์เข้า/ทำสิ่งนี้"
สาเหตุที่พบบ่อย
1. ไม่มี Permission ของโมดูล
ตัวอย่าง: คลิก Adjustments → 403
สาเหตุ: User ไม่มี Read access ของ Inventory → Adjustments
แก้: Admin ให้สิทธิ์เพิ่ม (ดู Per-Module Permissions)
2. ไม่มี Write Permission
ตัวอย่าง: เห็น Item ได้ แต่กด Edit → 403
สาเหตุ: มี Read แต่ไม่มี Write
แก้: Admin เปิด Write Permission
3. Action ต้อง Role สูงกว่า
ตัวอย่าง: Operator สร้าง Adjustment แต่ Approve ไม่ได้
สาเหตุ: Approve = Supervisor+
แก้: ส่งให้ Supervisor approve
4. Warehouse ไม่ได้ Assign
ตัวอย่าง: User ดูแลคลัง A → คลิก Order ของคลัง B → 403
สาเหตุ: ไม่ได้ assign คลัง B ให้ User
แก้: Admin เพิ่มคลัง B ใน Assigned Warehouses
5. Document Locked
ตัวอย่าง: เปิด GRN ที่ Confirmed แล้ว → กด Edit → 403
สาเหตุ: GRN Confirm แล้วล็อก — ต้องสร้าง Adjustment แทน
แก้: ใช้ proper workflow (Adjustment / Reverse)
6. Admin Portal ห้ามเข้า
ตัวอย่าง: เข้า [admin URL] → 403
สาเหตุ: Role ต่ำกว่า Admin (Manager/Supervisor/Operator/Viewer)
แก้: ใช้ Main WMS แทน — ถ้าต้องการสิทธิ์เพิ่ม → ติดต่อ Admin
7. SuperAdmin-only Action
ตัวอย่าง: Admin จะลบ Tenant → 403
สาเหตุ: Action นี้เฉพาะ SuperAdmin
แก้: ติดต่อ SuperAdmin
วิธีหาว่าตัวเองมีสิทธิ์อะไรบ้าง
- Profile → Tab Read-only Info
- ดู:
- Role
- Assigned Warehouses
- Per-Module Permissions
ถ้ายังไม่แน่ใจ → ติดต่อ Admin ขอ Permission Report
วิธีให้ Admin แก้
Admin จะทำอะไร:
- Admin Portal → Users → ค้นหา User ที่มีปัญหา
- ดู:
- Role ที่ตั้งไว้
- Permissions ที่ Override
- Assigned Warehouses
- แก้ตามที่ต้องการ:
- ติ๊ก Permission เพิ่ม
- เพิ่ม Warehouse
- เปลี่ยน Role (ถ้าจำเป็น)
- Save
- แจ้ง User → Logout + Login ใหม่ (Token cached สิทธิ์เก่า)
Login ใหม่หลังเปลี่ยน Permission
Token เก่าจะมี Permission เก่าใน 5-15 นาที — Logout + Login จะ Refresh ทันที
Audit Permission ตัวเองได้
ไม่มีปุ่ม "ดู Permission ตัวเอง" โดยตรง — ให้ทำดังนี้:
- เปิด DevTools (F12)
- Tab Network
- รีโหลด
- หา request
/api/v1/auth/me - Response จะมี:json
{ "role": "...", "permissions": [...], "warehouses": [...] }
ตัวอย่างที่พบบ่อย
Operator พยายามดู Stock ทุกคลัง
- เห็นเฉพาะคลังตัวเอง (เพราะ assigned)
- ต้องการมากกว่านี้ → Manager เพิ่ม Warehouse
Supervisor ใหม่ Approve ไม่ได้
- Supervisor ใหม่ปกติได้สิทธิ์ Approve ครบ
- ถ้ายัง 403 → เช็ค "Per-Module Permissions" — อาจถูก Override
Viewer ที่ Export ไม่ได้
- บางองค์กรปิด Export สำหรับ Viewer (เพื่อป้องกัน data leak)
- ขอ Admin เปิดให้ถ้าจำเป็น
ป้องกัน 403 ในอนาคต
- ใช้ Permission Templates ให้ครอบคลุม
- Test ก่อน Deploy User
- มี Onboarding checklist ตอน User ใหม่