ACIM User Authorization - Update (AIS VO)
เอกสารนี้ระบุตรรกะของโปรแกรมและรายละเอียดส่วนต่อประสาน (Interface) ของ API สำหรับการปรับปรุงสิทธิ์ (Role) และข้อมูลโปรไฟล์ของผู้ใช้งานจากระบบ ACIM เข้าสู่ระบบ VO
1. ภาพรวมโครงการ (Project Overview)
- ชื่อระบบ: Virtual Organization (VO) on Azure Cloud
- โมดูล: ACIM Integration
- วัตถุประสงค์: เพื่อรับข้อมูลการแก้ไขข้อมูลพื้นฐานของผู้ใช้งาน (ชื่อ, นามสกุล, อีเมล) และการเปลี่ยนแปลงสิทธิ์การใช้งาน (Role) โดยใช้ข้อมูลสิทธิ์เดิมเป็นตัวอ้างอิงในการเปลี่ยนแปลง
2. รายละเอียด API Interface
- ชื่อ API:
updateUserAuthorize(Update Action) - Endpoint URL:
https://sit-virtualorg-api.cdc.ais.th/api/acimuser - HTTP Method:
POST - การยืนยันตัวตน (Authentication): Bearer Token (ได้รับจากบริการ
getAccessToken)
3. โครงสร้างข้อมูล (Data Structure)
3.1 พารามิเตอร์ขาเข้า (Request Body - JSON Array)
API รองรับการส่งข้อมูลเป็น Array เพื่อปรับปรุงข้อมูลหลายรายการในครั้งเดียว โดยการระบุ rolePast เพื่อระบุสิทธิ์เดิมที่ต้องการเปลี่ยน
json
[
{
"Username": "Saranyaporn@gpteches.com",
"firstName": "Thanphitcha",
"lastName": "Thepparathan",
"Email": "Saranyapornupdate@gpteches.com",
"role": "ACC Admin",
"rolePast": "ACC Admin",
"period": "Permanent",
"startDate": null,
"endDate": null,
"locationCode": "11018",
"locationName": "3BBSHOP Silom",
"otherParameter": ""
}
]3.2 รายละเอียดฟิลด์สำคัญ
| ฟิลด์ | ประเภท | รายละเอียด |
|---|---|---|
Username | String | ชื่อผู้ใช้งานที่ต้องการปรับปรุง (Mandatory) |
role | String | สิทธิ์การใช้งานใหม่ที่ต้องการกำหนด |
rolePast | String | สิทธิ์การใช้งานเดิมที่มีอยู่ในระบบ (ใช้ตรวจสอบความถูกต้องก่อนเปลี่ยน) |
firstName / lastName / Email | String | ข้อมูลโปรไฟล์ที่ต้องการอัปเดต |
period | String | ประเภทระยะเวลา (Permanent หรือ Temporary) |
4. ตรรกะการประมวลผล (Processing Logic)
- การตรวจสอบผู้ใช้งาน: ระบบตรวจสอบว่า
Usernameที่ส่งมามีอยู่ในระบบ VO หรือไม่ - การตรวจสอบสิทธิ์เดิม (
rolePast):- หากมีการส่ง
roleและrolePastมา ระบบจะตรวจสอบว่า User ดังกล่าวมีสิทธิ์เดิมตรงตามrolePastหรือไม่ - หากไม่ตรง ระบบจะตอบกลับด้วยข้อความแจ้งเตือน "Role past is not The User's role now"
- หากมีการส่ง
- การอัปเดตข้อมูลโปรไฟล์: ระบบจะปรับปรุงข้อมูล
firstName,lastName, และEmailในตารางAspNetUsers - การเปลี่ยนสิทธิ์: ระบบจะทำการเปลี่ยนความสัมพันธ์ในตาราง
AspNetUserRolesจากrolePastเป็นroleใหม่ - การจัดการ Period: หากมีการเปลี่ยนแปลงระยะเวลาสิทธิ์ ระบบจะบันทึกวันที่
startDateและendDateใหม่ตามที่ได้รับ
5. สถานการณ์การทดสอบ (Test Scenarios)
5.1 สถานการณ์ทางธุรกิจ (Business Scenarios)
| รหัสสถานการณ์ | รายละเอียด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-001 | เปลี่ยนแปลงข้อมูลโปรไฟล์ (ชื่อ, นามสกุล, อีเมล) โดยใช้ Role เดิม | อัปเดตข้อมูลสำเร็จ User สามารถ Login ได้ตามปกติ |
| SN-002 | เปลี่ยนแปลง Role โดยระบุ rolePast ไม่ถูกต้อง | HTTP 200 / Error: Role past is not The User's role now |
| SN-003 | เปลี่ยนแปลง Role โดยระบุ rolePast ได้ถูกต้อง | อัปเดตสิทธิ์สำเร็จ สิทธิ์การใช้งานเปลี่ยนเป็นค่าใหม่ |
| SN-004 | เปลี่ยนแปลง Role เป็นค่าที่ไม่มีในระบบ | HTTP 200 / Error: Role does not existed |
| SN-005 | อัปเดตข้อมูล User ที่ไม่มีอยู่ในระบบ VO | HTTP 404 / Error: Data Not Found |
| SN-006 | เปลี่ยนแปลงประเภทระยะเวลา (Period) | บันทึกช่วงเวลาสิทธิ์การใช้งานใหม่สำเร็จ |
| SN-009 | อัปเดตข้อมูลหลาย User พร้อมกัน (กรณีมีข้อมูลครบ) | ทุกรายการอัปเดตสำเร็จ |
5.2 สถานการณ์ทางเทคนิคและข้อผิดพลาด (Technical & Error Scenarios)
| รหัสสถานการณ์ | เงื่อนไขข้อผิดพลาด | ผลลัพธ์ที่คาดหวัง |
|---|---|---|
| SN-011 | ประมวลผลสำเร็จ | HTTP 200 / resultCode = 20000 |
| SN-012 | ประมวลผลล้มเหลวบางส่วน | HTTP 200 / resultCode = 20001 Some Process Fail |
| SN-014 | ขาดพารามิเตอร์ที่จำเป็น | HTTP 400 / resultCode = 40001 Missing Parameter |
| SN-016 | Token ไม่ถูกต้อง | HTTP 401 / resultCode = 900 Unauthorized |
| SN-022 | เกิดข้อผิดพลาดภายในระบบ | HTTP 500 / resultCode = 50000 |