สิทธิ์การมองเห็น OA (🔐)←
จำกัดให้ agent แต่ละคนเห็นเฉพาะ OA ที่กำหนด — ไม่เลือก = เห็นทุก OA
ภาพรวม←

หมายเลขในรูป:
- หัวข้อ + คำอธิบาย "ไม่เลือก = เห็นทั้งหมด"
- แต่ละ row = 1 agent — แสดง avatar + ชื่อ + email + รายการ OA
- OA chip ที่มี ✓ = agent นี้เห็น OA นั้น
- ปุ่ม "บันทึก" — PUT /api/agents/:id/oa-permissions
Settings → tab 🔐 จัดการสิทธิ์ — ตารางแสดง agent ทั้งหมด × OA ทั้งหมด
แต่ละ row:
- avatar + ชื่อ agent + email
- รายการ OA — ติ๊ก ✓ = เห็น OA นี้
หลักการ←
| สถานะ | ผลกระทบ |
|---|---|
| ไม่ติ๊กอะไรเลย (ทุก OA ว่าง) | agent คนนี้เห็น ทุก OA (default behavior) |
| ติ๊ก OA บางตัว | agent คนนี้เห็นเฉพาะ OA ที่ติ๊กไว้ |
| ติ๊กทุก OA | เทียบเท่าไม่ติ๊ก (เห็นทุกตัว) |
Admin role: ระบบ override ให้เห็น ทุก OA เสมอ (ไม่สนใจ permission)
วิธีตั้งค่า←
1. หา agent ที่ต้องการตั้ง←
scroll ลงในหน้า — ทุก agent (รวม admin) มี row
2. ติ๊ก ✓ บน OA ที่อนุญาต←
คลิก checkbox ของ OA — ✓ จะปรากฏ
3. กด "บันทึก"←
ของ row นั้น → PUT /api/agents/:id/oa-permissions
Use cases←
Agent ทีม A ดูแลเฉพาะ OA1:
- agent_a → ติ๊กเฉพาะ
OA1
Agent ทีม B ดูแล OA2 + OA3:
- agent_b → ติ๊ก
OA2+OA3
Supervisor เห็นทุก OA:
- supervisor → ไม่ติ๊กอะไรเลย (default = เห็นทุกตัว) หรือ
- ตั้ง role เป็น
admin(override permission)
ผลกระทบที่ Inbox←
หลังบันทึก:
- agent ที่ login อยู่ — ต้อง refresh หน้า (token cache)
- conversation ใน sidebar filter อัตโนมัติ — เห็นเฉพาะ OA ที่อนุญาต
- WS event filter ฝั่ง backend — agent ไม่ได้รับ push notification ของ OA ที่ไม่มีสิทธิ์
คำถามที่พบบ่อย←
เปลี่ยน permission ระหว่าง agent กำลัง online
Agent ต้อง refresh เพราะ JWT cache allowedOaIds ใน middleware Backend reload จาก DB เฉพาะตอน login หรือ token refresh
Conversation ที่ agent assigned แล้ว — เห็นต่อหรือไม่ ถ้าตัด permission
ไม่เห็น — filter ตาม OA ปัจจุบัน ไม่ใช่ assigned_agent_id
Admin role bypass ได้ไหม
Admin เห็นทุก OA เสมอ — ตั้ง permission ของ admin ไม่มีผล
ที่อ้างอิง←
- Agent guide: Inbox Overview
- Backend: GET/PUT
/api/agents/:id/oa-permissions - DB:
agent_oa_permissions(agent_id, oa_id) join table