Skip to content

ACIM User Authorization - Delete (AIS VO)

เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการยกเลิกสิทธิ์ (Delete/Terminate) ของผู้ใช้งานจากระบบ ACIM เพื่อออกจากระบบ VO

1. ภาพรวมโครงการ (Project Overview)

  • ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
  • โมดูล: ACIM Integration
  • วัตถุประสงค์: เพื่อรับคำสั่งยกเลิกสิทธิ์การเข้าใช้งาน (Role) ของผู้ใช้งานจากระบบ ACIM โดยการลบความสัมพันธ์ระหว่าง User และ Role ในระบบ VO

2. รายละเอียด API Interface

  • ชื่อ API: updateUserAuthorize (Delete Action)
  • Endpoint URL: https://sit-virtualorg-api.cdc.ais.th/api/acimuser/del
  • HTTP Method: POST
  • การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ getAccessToken)

3. โครงสร้างข้อมูล (Data Structure)

3.1 พารามิเตอร์ขาเข้า (Request Body - JSON Array)

API รับข้อมูลเป็น Array เพื่อรองรับการลบหลายสิทธิ์หรือหลาย User ในครั้งเดียว

json
[
  {
    "Username": "rujira@gpteches.com",
    "role": "Admin",
    "period": "Permanent"
  }
]

3.2 รายละเอียดฟิลด์

ฟิลด์ประเภทจำเป็นรายละเอียด
UsernameStringใช่ชื่อผู้ใช้งานที่ต้องการลบสิทธิ์
roleStringใช่ชื่อ Role ที่ต้องการยกเลิก
periodStringไม่ประเภทระยะเวลา (Permanent/Temporary)

4. ตรรกะการประมวลผล (Processing Logic)

  1. การตรวจสอบสิทธิ์: ระบบจะตรวจสอบว่า User มี Role ตามที่ระบุมาจริงหรือไม่ ในตาราง AspNetUserRoles
  2. การลบข้อมูล:
    • ระบบจะทำการลบ Record ในตาราง AspNetUserRoles ที่ตรงกับ Username และ role ที่ส่งมา
    • หมายเหตุ: หาก User มีหลาย Role และลบออกเพียง Role เดียว User ยังคงสามารถเข้าใช้งานระบบได้ด้วยสิทธิ์ที่เหลืออยู่
  3. การจัดการกรณี User ไม่มีสิทธิ์เหลือ: หาก User ถูกลบ Role สุดท้ายออก จะไม่สามารถ Login เข้าสู่ระบบ VO ได้อีก
  4. การบันทึก Log: บันทึกรายละเอียดการทำงานลงในตาราง LogApi

5. สถานการณ์การทดสอบ (Test Scenarios)

5.1 สถานการณ์ทางธุรกิจ (Business Scenarios)

รหัสสถานการณ์รายละเอียดผลลัพธ์ที่คาดหวัง
SN-001ลบสิทธิ์ User ที่มีอยู่จริงในระบบลบ Record ใน AspNetUserRoles สำเร็จ
SN-003ลบสิทธิ์ User ที่ไม่มีอยู่ในระบบHTTP 404 / Error: Data Not Found
SN-004ลบ Role ที่ไม่ตรงกับที่ User ถือครองอยู่HTTP 200 / resultCode = 20001 (Some Process Fail)
SN-005ลบสิทธิ์โดยระบุ Role ที่ไม่มีในระบบ VOHTTP 400 / Error: Invalid Parameter
SN-006ลบสิทธิ์ User ที่มีสถานะ Inactive อยู่แล้วระบบดำเนินการลบสิทธิ์ตามปกติ
SN-007ลบสิทธิ์หลาย User พร้อมกัน (Batch Delete)ทุกรายการดำเนินการสำเร็จตามเงื่อนไข

5.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)

รหัสสถานการณ์เงื่อนไขข้อผิดพลาดผลลัพธ์ที่คาดหวัง
SN-010ประมวลผลล้มเหลวบางส่วนHTTP 200 / resultCode = 20001 Some Process Fail
SN-011รูปแบบ Syntax ผิดพลาดHTTP 400 / resultCode = 40000 Unknown Syntax
SN-012ขาดพารามิเตอร์ที่จำเป็น (เช่น Role)HTTP 400 / resultCode = 40001 Missing Parameter
SN-014Token ไม่ถูกต้องหรือไม่ถูกส่งมาHTTP 401 / resultCode = 900 Unauthorized
SN-017URL ผิด (URL Not Found)HTTP 404 / resultCode = 40400
SN-021เกิดข้อผิดพลาดในฐานข้อมูลHTTP 500 / resultCode = 50001 DB Error