ข้ามไปที่เนื้อหา

สิทธิ์การมองเห็น OA (🔐)

จำกัดให้ agent แต่ละคนเห็นเฉพาะ OA ที่กำหนด — ไม่เลือก = เห็นทุก OA

ภาพรวม

หมายเลขในรูป:

  1. หัวข้อ + คำอธิบาย "ไม่เลือก = เห็นทั้งหมด"
  2. แต่ละ row = 1 agent — แสดง avatar + ชื่อ + email + รายการ OA
  3. OA chip ที่มี ✓ = agent นี้เห็น OA นั้น
  4. ปุ่ม "บันทึก" — 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