Skip to content

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 รายละเอียดฟิลด์สำคัญ

ฟิลด์ประเภทรายละเอียด
UsernameStringชื่อผู้ใช้งานที่ต้องการปรับปรุง (Mandatory)
roleStringสิทธิ์การใช้งานใหม่ที่ต้องการกำหนด
rolePastStringสิทธิ์การใช้งานเดิมที่มีอยู่ในระบบ (ใช้ตรวจสอบความถูกต้องก่อนเปลี่ยน)
firstName / lastName / EmailStringข้อมูลโปรไฟล์ที่ต้องการอัปเดต
periodStringประเภทระยะเวลา (Permanent หรือ Temporary)

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

  1. การตรวจสอบผู้ใช้งาน: ระบบตรวจสอบว่า Username ที่ส่งมามีอยู่ในระบบ VO หรือไม่
  2. การตรวจสอบสิทธิ์เดิม (rolePast):
    • หากมีการส่ง role และ rolePast มา ระบบจะตรวจสอบว่า User ดังกล่าวมีสิทธิ์เดิมตรงตาม rolePast หรือไม่
    • หากไม่ตรง ระบบจะตอบกลับด้วยข้อความแจ้งเตือน "Role past is not The User's role now"
  3. การอัปเดตข้อมูลโปรไฟล์: ระบบจะปรับปรุงข้อมูล firstName, lastName, และ Email ในตาราง AspNetUsers
  4. การเปลี่ยนสิทธิ์: ระบบจะทำการเปลี่ยนความสัมพันธ์ในตาราง AspNetUserRoles จาก rolePast เป็น role ใหม่
  5. การจัดการ 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 ที่ไม่มีอยู่ในระบบ VOHTTP 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-016Token ไม่ถูกต้องHTTP 401 / resultCode = 900 Unauthorized
SN-022เกิดข้อผิดพลาดภายในระบบHTTP 500 / resultCode = 50000