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 รายละเอียดฟิลด์
| ฟิลด์ | ประเภท | จำเป็น | รายละเอียด |
|---|---|---|---|
Username | String | ใช่ | ชื่อผู้ใช้งานที่ต้องการลบสิทธิ์ |
role | String | ใช่ | ชื่อ Role ที่ต้องการยกเลิก |
period | String | ไม่ | ประเภทระยะเวลา (Permanent/Temporary) |
4. ตรรกะการประมวลผล (Processing Logic)
- การตรวจสอบสิทธิ์: ระบบจะตรวจสอบว่า User มี Role ตามที่ระบุมาจริงหรือไม่ ในตาราง
AspNetUserRoles - การลบข้อมูล:
- ระบบจะทำการลบ Record ในตาราง
AspNetUserRolesที่ตรงกับUsernameและroleที่ส่งมา - หมายเหตุ: หาก User มีหลาย Role และลบออกเพียง Role เดียว User ยังคงสามารถเข้าใช้งานระบบได้ด้วยสิทธิ์ที่เหลืออยู่
- ระบบจะทำการลบ Record ในตาราง
- การจัดการกรณี User ไม่มีสิทธิ์เหลือ: หาก User ถูกลบ Role สุดท้ายออก จะไม่สามารถ Login เข้าสู่ระบบ VO ได้อีก
- การบันทึก 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 ที่ไม่มีในระบบ VO | HTTP 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-014 | Token ไม่ถูกต้องหรือไม่ถูกส่งมา | HTTP 401 / resultCode = 900 Unauthorized |
| SN-017 | URL ผิด (URL Not Found) | HTTP 404 / resultCode = 40400 |
| SN-021 | เกิดข้อผิดพลาดในฐานข้อมูล | HTTP 500 / resultCode = 50001 DB Error |