# จัดการผู้ใช้และสิทธิ์การเข้าถึง (Admin Portal)

> **ฟีเจอร์นี้ทำอะไร** — สร้าง แก้ไข และปิดใช้งานบัญชีผู้ดูแลระบบ (Admin), เชิญผู้ใช้ใหม่ทางอีเมล, กำหนดบทบาท (Role) ตามลำดับชั้น และตั้งค่าสิทธิ์การเข้าถึงแบบรายฟีเจอร์ (Team Permission — VIEW / EDIT / DELETE)
>
> **ใครใช้งาน** — SuperAdmin (สิทธิ์เต็ม), ผู้ดูแลระบบ (Admin) ที่ได้รับสิทธิ์จัดการผู้ใช้
>
> **เข้าถึงได้ที่ไหน** — เมนูด้านซ้าย (sidebar) → ตั้งค่า (Settings) → บัญชีผู้ใช้ (Admin Users) และ สิทธิ์การเข้าถึง (Permissions)
>
> **ข้อกำหนดที่เกี่ยวข้อง** — FR-015 (System Settings), FR-020 (Admin Authentication & Authorization), UF-015
>
> **โมดูลในโค้ดเบส** — `setting-user-account`, `setting-permission`, `auth`, `guards`

---

## ก่อนเริ่มใช้งาน

ตรวจสอบให้แน่ใจว่า:

- [ ] คุณเข้าสู่ระบบ Admin Portal ด้วยบทบาท **SuperAdmin** หรือบทบาทที่ได้รับสิทธิ์ระดับ EDIT ในฟีเจอร์จัดการผู้ใช้
- [ ] คุณมีอีเมลที่ใช้ได้จริงของผู้ใช้ใหม่ทุกคนที่ต้องการเชิญเข้าระบบ
- [ ] คุณเข้าใจลำดับชั้นของบทบาท: **SuperAdmin > Admin > Manager > User**
- [ ] คุณทราบว่าผู้ใช้แต่ละคนควรอยู่ในบทบาทใดและแผนกใด (Department type)
- [ ] คุณทราบนโยบายขององค์กรว่าฟีเจอร์ใดควรเปิด/ปิด และให้สิทธิ์ระดับใดแก่แต่ละบทบาท

---

## สถานการณ์: เชิญผู้ใช้ Admin คนใหม่

### สิ่งที่คุณต้องการทำ

สร้างบัญชี Admin ใหม่และส่งคำเชิญทางอีเมล เพื่อให้ผู้ใช้ตั้งรหัสผ่านเองและเข้าสู่ระบบได้

### ขั้นตอน

1. ไปที่ **ตั้งค่า (Settings) → บัญชีผู้ใช้ (Admin Users)** ในเมนูด้านซ้าย

   ![รายการบัญชีผู้ใช้ Admin แสดงชื่อ อีเมล บทบาท และสถานะ](images/02-admin-users-list.png)

   <!-- 📸 NEED SCREENSHOT: รายการบัญชีผู้ใช้ Admin แสดงคอลัมน์ ชื่อ อีเมล บทบาท แผนก และสถานะ -->

2. คลิกปุ่ม **เชิญผู้ใช้ (เชิญผู้ใช้ / Invite)** ที่มุมขวาบนของหน้า

3. กรอกข้อมูลในแบบฟอร์มคำเชิญ

   | ช่อง | กรอกอะไร | เงื่อนไข |
   |------|----------|----------|
   | อีเมล (Email)* | อีเมลของผู้ใช้ใหม่ ใช้เป็นข้อมูลเข้าสู่ระบบ | ต้องเป็นรูปแบบอีเมลที่ถูกต้อง และไม่ซ้ำกับผู้ใช้ที่มีอยู่ภายใน tenant เดียวกัน |
   | บทบาท (Role)* | เลือกบทบาทของผู้ใช้: Admin / Dispatcher / Manager | ต้องเลือก 1 บทบาท ดูลำดับชั้นบทบาทในสถานการณ์ถัดไป |

   > **หมายเหตุ:** ช่องที่มีเครื่องหมาย * เป็นช่องที่ต้องกรอก

   ![แบบฟอร์มเชิญผู้ใช้ Admin พร้อมช่องอีเมลและบทบาท](images/02-invite-admin-form.png)

   <!-- 📸 NEED SCREENSHOT: แบบฟอร์มเชิญผู้ใช้ Admin พร้อมช่องอีเมลและช่องเลือกบทบาท -->

   > **คำเตือน:** ตรวจสอบอีเมลให้ถูกต้องก่อนส่ง ระบบจะส่งลิงก์ตั้งรหัสผ่านไปยังอีเมลนี้ หากพิมพ์ผิด คำเชิญจะถูกส่งไปผิดคน

4. คลิกปุ่ม **ส่งคำเชิญ (เชิญผู้ใช้)** ระบบจะส่งอีเมลคำเชิญไปยังที่อยู่ที่ระบุ

5. อีเมลคำเชิญจะมีองค์ประกอบดังนี้:

   | องค์ประกอบในอีเมล | คำอธิบาย |
   |-------------------|----------|
   | ข้อความต้อนรับ | แจ้งว่าผู้ใช้ถูกเชิญเข้าใช้งาน Infrabrik Admin Portal |
   | ลิงก์ตั้งรหัสผ่าน | ลิงก์ใช้ครั้งเดียวสำหรับตั้งรหัสผ่านของบัญชี |
   | อายุของลิงก์ | ลิงก์มีอายุจำกัด (สอดคล้องกับลิงก์รีเซ็ตรหัสผ่านที่มีอายุ 1 ชั่วโมง — ตรวจสอบกับ SuperAdmin หากไม่แน่ใจ) |

   <!-- VERIFY: อายุลิงก์ตั้งรหัสผ่านจากคำเชิญ — FR-020 ระบุเฉพาะ reset token = 1 ชั่วโมง ไม่ได้ระบุ invite link โดยตรง -->

### ผลลัพธ์ที่จะเกิดขึ้น

ผู้ใช้ใหม่จะได้รับอีเมลคำเชิญ คลิกลิงก์ตั้งรหัสผ่าน แล้วเข้าสู่ระบบได้ทันทีด้วยสิทธิ์ตามบทบาทที่กำหนด บัญชีจะปรากฏในรายการบัญชีผู้ใช้พร้อมสถานะ **ใช้งาน (Active)**

> **เคล็ดลับ:** หลังส่งคำเชิญ ให้ยืนยันกับผู้ใช้ว่าได้รับอีเมลแล้ว หากไม่พบภายในไม่กี่นาที ให้ตรวจในโฟลเดอร์ Spam/Junk

---

## สถานการณ์: สร้างบัญชีผู้ใช้ Admin ด้วยตนเอง

### สิ่งที่คุณต้องการทำ

สร้างบัญชี Admin ใหม่โดยกรอกข้อมูลผู้ใช้ บทบาท แผนก และกลุ่มสิทธิ์ด้วยตนเองในแบบฟอร์ม

### ขั้นตอน

1. ไปที่ **ตั้งค่า (Settings) → บัญชีผู้ใช้ (Admin Users)**

2. คลิกปุ่ม **+ สร้างบัญชีผู้ใช้ (สร้างบัญชีผู้ใช้)** ที่ด้านบนของหน้า

   ![แบบฟอร์มสร้างบัญชีผู้ใช้ Admin](images/02-create-admin-form.png)

   <!-- 📸 NEED SCREENSHOT: แบบฟอร์มสร้างบัญชีผู้ใช้ Admin แสดงส่วนข้อมูลทั่วไป บทบาท และสิทธิ์ -->

3. กรอกข้อมูลในส่วน **ข้อมูลทั่วไป**

   | ช่อง | กรอกอะไร | เงื่อนไข |
   |------|----------|----------|
   | ชื่อ (Name)* | ชื่อที่ใช้แสดงของผู้ใช้ | ห้ามเว้นว่าง ยาวไม่เกิน 100 ตัวอักษร |
   | อีเมล (Email)* | อีเมลที่ใช้เข้าสู่ระบบ | ต้องเป็นรูปแบบอีเมลที่ถูกต้อง และไม่ซ้ำภายใน tenant เดียวกัน |
   | เบอร์โทร (Phone) | เบอร์โทรติดต่อของผู้ใช้ | ไม่บังคับ ต้องเป็นรูปแบบเบอร์โทรที่ถูกต้องหากกรอก |

4. กำหนด **บทบาท & แผนก (Role & Department)**

   | ช่อง | กรอกอะไร | เงื่อนไข |
   |------|----------|----------|
   | บทบาท (Role)* | เลือก Admin / Dispatcher / Manager | ต้องเลือก 1 บทบาท กำหนดสิทธิ์การเข้าถึงพื้นฐาน |
   | ประเภทแผนก (Department type)* | เลือกประเภทแผนก (เช่น DEPARTMENT_ADMIN หรือ DEPARTMENT) | DEPARTMENT_ADMIN ได้สิทธิ์เต็ม, DEPARTMENT ปรับสิทธิ์ได้ตาม Team Permission |

5. กำหนด **สิทธิ์การเข้าถึง (Permission group)** โดยเลือกกลุ่มสิทธิ์ที่ผู้ใช้นี้จะได้รับ

   > **หมายเหตุ:** กลุ่มสิทธิ์ถูกตั้งค่าไว้ล่วงหน้าในเมนู สิทธิ์การเข้าถึง (Permissions) ดูวิธีสร้างกลุ่มสิทธิ์ในสถานการณ์ "ตั้งค่าสิทธิ์การเข้าถึงแบบรายฟีเจอร์ (Team Permission)" ด้านล่าง

6. คลิกปุ่ม **บันทึก (บันทึก / Save)**

   > **คำเตือน:** หากข้อมูลไม่ผ่านการตรวจสอบ ระบบจะแสดงข้อความ error ที่ช่องที่มีปัญหา ให้แก้ไขแล้วบันทึกอีกครั้ง

### ผลลัพธ์ที่จะเกิดขึ้น

ระบบสร้างบัญชีและแสดงข้อความสร้างบัญชีสำเร็จ บัญชีใหม่จะปรากฏในรายการบัญชีผู้ใช้ทันที พร้อมบทบาทและสิทธิ์ที่กำหนด

---

## สถานการณ์: เข้าใจลำดับชั้นบทบาทและเปลี่ยนบทบาทผู้ใช้

### สิ่งที่คุณต้องการทำ

ทำความเข้าใจลำดับชั้นบทบาท (SuperAdmin > Admin > Manager > User) และเปลี่ยนบทบาทของผู้ใช้ที่มีอยู่ เพื่อเพิ่มหรือลดสิทธิ์

### ขั้นตอน

1. ทบทวนลำดับชั้นและสิทธิ์ของแต่ละบทบาทก่อนเปลี่ยนแปลง:

   | บทบาท | ระดับ | สิ่งที่ทำได้ |
   |-------|:-----:|-------------|
   | **SuperAdmin** | 1 (สูงสุด) | เข้าถึงทุกฟีเจอร์รวมถึงตั้งค่าระบบ จัดการบัญชี Admin คนอื่น และกำหนดสิทธิ์ทั้งหมด |
   | **Admin** | 2 | เข้าถึงฟีเจอร์ปฏิบัติการเกือบทั้งหมด แต่แก้ไขการตั้งค่าระดับระบบหรือจัดการบัญชี SuperAdmin ไม่ได้ |
   | **Manager** | 3 | ดูข้อมูลได้ทั้งหมด แก้ไขได้จำกัด สร้างหรือลบเรคคอร์ดไม่ได้ |
   | **User** | 4 (ต่ำสุด) | ดูอย่างเดียวในฟีเจอร์ที่ได้รับมอบหมาย แก้ไขข้อมูลใด ๆ ไม่ได้ |

   > **หมายเหตุ:** ลำดับชั้นบทบาทถูกบังคับใช้โดยระบบ (FR-020 BR4) บทบาทที่สูงกว่าครอบคลุมสิทธิ์ของบทบาทที่ต่ำกว่า

2. ไปที่ **ตั้งค่า (Settings) → บัญชีผู้ใช้ (Admin Users)**

3. คลิกผู้ใช้ที่ต้องการเปลี่ยนบทบาท เพื่อเปิดหน้ารายละเอียด/แก้ไข

   ![หน้ารายละเอียดผู้ใช้ Admin พร้อมช่องเลือกบทบาท](images/02-admin-user-detail.png)

   <!-- 📸 NEED SCREENSHOT: หน้ารายละเอียด/แก้ไขผู้ใช้ Admin พร้อมช่องเลือกบทบาท -->

4. เปลี่ยนค่าในช่อง **บทบาท (Role)** เป็นบทบาทใหม่ที่ต้องการ

   | เปลี่ยนจาก | เป็น | ผลที่เกิด |
   |-----------|------|----------|
   | User | Manager | ได้สิทธิ์แก้ไขแบบจำกัด |
   | Manager | Admin | ได้สิทธิ์เต็มในฟีเจอร์ปฏิบัติการเกือบทั้งหมด |
   | Admin | SuperAdmin | ได้สิทธิ์เข้าถึงตั้งค่าระบบและจัดการบัญชี Admin |
   | SuperAdmin | Admin | สูญเสียสิทธิ์ตั้งค่าระบบและจัดการบัญชี Admin |

5. คลิกปุ่ม **บันทึก (บันทึก / Save)** เพื่อใช้การเปลี่ยนบทบาท

### ผลลัพธ์ที่จะเกิดขึ้น

การเปลี่ยนบทบาทจะมีผลใน **เซสชันถัดไป** ของผู้ใช้ (FR-015 BR3) หากผู้ใช้กำลังเข้าสู่ระบบอยู่ จะยังใช้สิทธิ์เดิมจนกว่าจะออกจากระบบและเข้าสู่ระบบใหม่

> **คำเตือน:** ใช้ความระมัดระวังเมื่อเลื่อนผู้ใช้เป็น SuperAdmin เพราะ SuperAdmin แก้ไขการตั้งค่าระบบทั้งหมด จัดการบัญชี Admin คนอื่น และเข้าถึงข้อมูลที่อ่อนไหวได้ ยึดหลักให้สิทธิ์น้อยที่สุดเท่าที่จำเป็น (least privilege)

> **หมายเหตุ:** ระบบกำหนดให้ต้องมีบัญชี SuperAdmin อย่างน้อย 1 บัญชีเสมอ (FR-015 BR1) หากนี่เป็น SuperAdmin คนเดียว ต้องสร้าง SuperAdmin คนใหม่ก่อน จึงจะลดบทบาทคนนี้ได้

---

## สถานการณ์: ปิดใช้งานบัญชีผู้ใช้ Admin

### สิ่งที่คุณต้องการทำ

ระงับการเข้าถึงระบบของผู้ใช้ Admin โดยยังคงเก็บประวัติการทำงานและ audit trail ไว้

### ขั้นตอน

1. ไปที่ **ตั้งค่า (Settings) → บัญชีผู้ใช้ (Admin Users)**

2. คลิกผู้ใช้ที่ต้องการปิดใช้งาน เพื่อเปิดหน้ารายละเอียด หรือใช้สวิตช์สถานะในแถวรายการ

3. สลับ **สถานะ (Status)** เป็น **ปิดใช้งาน (Inactive)**

   ![การสลับสถานะบัญชีผู้ใช้ Admin เป็นปิดใช้งาน](images/02-deactivate-admin.png)

   <!-- 📸 NEED SCREENSHOT: หน้ารายละเอียดผู้ใช้ Admin พร้อมสวิตช์สถานะแสดงตัวเลือกปิดใช้งาน -->

   | สถานะ | ผลที่เกิด |
   |-------|----------|
   | ใช้งาน (Active) | ผู้ใช้เข้าสู่ระบบและใช้งานพอร์ทัลได้ |
   | ปิดใช้งาน (Inactive) | ผู้ใช้เข้าสู่ระบบไม่ได้ เซสชันที่ใช้งานอยู่ทั้งหมดถูกยกเลิก |

4. คลิกปุ่ม **บันทึก (บันทึก / Save)** เพื่อยืนยัน

### ผลลัพธ์ที่จะเกิดขึ้น

ผู้ใช้จะเข้าสู่ระบบไม่ได้อีก หากกำลังเข้าสู่ระบบอยู่ เซสชันจะถูกยกเลิก ประวัติการทำงานทั้งหมดยังคงอยู่ใน audit trail ตามชื่อของผู้ใช้ บัญชียังอยู่ในรายการพร้อมป้ายกำกับ ปิดใช้งาน (Inactive)

> **คำเตือน:** คุณไม่สามารถปิดใช้งานบัญชีของตนเองได้ (FR-015 BR2) ต้องให้ SuperAdmin คนอื่นเป็นผู้ดำเนินการ และต้องมีบัญชี SuperAdmin ที่ใช้งานอยู่อย่างน้อย 1 บัญชีเสมอ

> **เคล็ดลับ:** ให้ปิดใช้งานบัญชีทันทีเมื่อสมาชิกทีมออกจากองค์กรหรือเปลี่ยนบทบาท อย่าลบบัญชี เพราะการปิดใช้งานช่วยรักษา audit trail ไว้

---

## สถานการณ์: ตั้งค่าสิทธิ์การเข้าถึงแบบรายฟีเจอร์ (Team Permission)

### สิ่งที่คุณต้องการทำ

สร้างหรือแก้ไขกลุ่มสิทธิ์ (Role) เพื่อควบคุมว่าบทบาทใดเห็นและเข้าถึงฟีเจอร์ใดได้ ในระดับใด (ดู / แก้ไข / ลบ)

### ขั้นตอน

1. ไปที่ **ตั้งค่า (Settings) → สิทธิ์การเข้าถึง (Permissions)**

   ![รายการกลุ่มสิทธิ์ (Role) แสดงชื่อสิทธิ์ ประเภทแผนก และจำนวนผู้ใช้](images/02-permission-list.png)

   <!-- 📸 NEED SCREENSHOT: รายการกลุ่มสิทธิ์ แสดงคอลัมน์ ชื่อสิทธิ์ ประเภทแผนก จำนวนผู้ใช้ -->

2. คลิกปุ่ม **+ สร้างสิทธิ์ (สร้างสิทธิ์)** เพื่อสร้างกลุ่มสิทธิ์ใหม่ หรือคลิกแก้ไขที่กลุ่มสิทธิ์ที่มีอยู่

3. กรอกข้อมูลส่วนหัวของกลุ่มสิทธิ์

   | ช่อง | กรอกอะไร | เงื่อนไข |
   |------|----------|----------|
   | ชื่อสิทธิ์ (Role Name)* | ชื่อกลุ่มสิทธิ์ที่สื่อความหมาย เช่น "หัวหน้าทีมช่าง" | ห้ามเว้นว่าง |
   | ประเภทแผนก (Department type)* | เลือกประเภทแผนกที่กลุ่มสิทธิ์นี้สังกัด | ต้องเลือก 1 ประเภท |

4. กำหนด **ตารางสิทธิ์ (Permission Matrix)** สำหรับแต่ละฟีเจอร์ โดยแต่ละฟีเจอร์ตั้งค่าได้ 2 ส่วน:

   | ส่วนที่ตั้งค่า | ตัวเลือก | ความหมาย |
   |---------------|----------|----------|
   | แสดง/ซ่อน (Show/Hide) | เปิด / ปิด | ควบคุมว่าเมนูของฟีเจอร์นี้แสดงใน sidebar หรือไม่ |
   | ระดับสิทธิ์ (Access Level) | None / Read-Only / Read/Write / Full Access | ควบคุมสิ่งที่ผู้ใช้ทำได้ในฟีเจอร์นั้น |

5. ตั้งค่าระดับสิทธิ์ของแต่ละฟีเจอร์ตามนโยบาย โดยเทียบกับการกระทำที่ต้องใช้:

   | การกระทำในระบบ | สิทธิ์ที่ต้องมี | ระดับสิทธิ์ที่เทียบเท่า |
   |----------------|----------------|------------------------|
   | ดูบัญชีผู้ใช้ / ดูกลุ่มสิทธิ์ / ดู SLA / ดูดรอปดาวน์ | VIEW | Read-Only |
   | สร้าง/แก้ไขบัญชีผู้ใช้ เปิด/ปิดใช้งาน เชิญผู้ใช้ | EDIT | Read/Write |
   | สร้าง/แก้ไขกลุ่มสิทธิ์ แก้ไขโปรไฟล์บริษัท สร้าง/แก้ไข SLA และดรอปดาวน์ | EDIT | Read/Write |
   | ลบค่าดรอปดาวน์ | DELETE | Full Access |

   <!-- 📸 NEED SCREENSHOT: ตารางสิทธิ์ (Permission Matrix) แสดงฟีเจอร์เป็นแถว พร้อมสวิตช์แสดง/ซ่อน และตัวเลือกระดับสิทธิ์ -->

   ![ตารางสิทธิ์แสดงฟีเจอร์ สวิตช์แสดง/ซ่อน และระดับสิทธิ์](images/02-permission-matrix.png)

6. คลิกปุ่ม **บันทึก (บันทึก / Save)** เพื่อบันทึกกลุ่มสิทธิ์

   > **คำเตือน:** หากข้อมูลไม่ผ่านการตรวจสอบ ระบบจะแสดงข้อความ error ให้แก้ไขแล้วบันทึกอีกครั้ง

### ผลลัพธ์ที่จะเกิดขึ้น

ระบบบันทึกกลุ่มสิทธิ์และแสดงข้อความสำเร็จ การเปลี่ยนแปลงสิทธิ์จะมีผลใน **เซสชันถัดไป** ของผู้ใช้ที่อยู่ในกลุ่มสิทธิ์นั้น (FR-015 BR3) ไม่ใช่ทันที — ผู้ใช้ที่กำลังเข้าสู่ระบบต้องออกและเข้าสู่ระบบใหม่จึงจะได้สิทธิ์ใหม่

> **หมายเหตุ:** สิทธิ์ของ SuperAdmin ไม่สามารถถูกจำกัดผ่านตารางสิทธิ์นี้ได้ SuperAdmin มีสิทธิ์เต็มทุกฟีเจอร์เสมอ เพื่อให้กู้คืนจากการตั้งค่าผิดพลาดได้

> **เคล็ดลับ:** เริ่มจากสิทธิ์ที่จำกัดที่สุด (ตั้งเป็น Read-Only สำหรับบทบาทส่วนใหญ่) แล้วค่อยขยายเมื่อจำเป็น การให้สิทธิ์เพิ่มทีหลังปลอดภัยกว่าการเพิกถอนสิทธิ์หลังข้อมูลอ่อนไหวถูกเปิดดูแล้ว

---

## เมื่อเกิดปัญหา

| สิ่งที่คุณเห็น | ทำอย่างไร |
|---------------|-----------|
| การเปลี่ยนสิทธิ์/บทบาทไม่มีผล | สิทธิ์มีผลในเซสชันถัดไปของผู้ใช้ ให้ผู้ใช้ออกจากระบบแล้วเข้าสู่ระบบใหม่ หากยังไม่ได้ผล ตรวจสอบว่ากลุ่มสิทธิ์ถูกบันทึกแล้ว (เปิดตารางสิทธิ์ตรวจซ้ำ) |
| ไม่ได้รับอีเมลคำเชิญ | 1. ตรวจโฟลเดอร์ Spam/Junk 2. ตรวจว่ากรอกอีเมลถูกต้อง 3. รอ 2–3 นาที 4. ส่งคำเชิญใหม่ 5. ติดต่อฝ่าย IT หากอีเมลถูกบล็อกโดยตัวกรองขององค์กร |
| ปิดใช้งานบัญชีตนเองไม่ได้ | ระบบไม่อนุญาตให้ปิดใช้งานบัญชีของตนเอง (BR2) ให้ SuperAdmin คนอื่นดำเนินการแทน |
| ลด SuperAdmin เป็นบทบาทต่ำกว่าไม่ได้ | ต้องมี SuperAdmin อย่างน้อย 1 บัญชีในระบบ (BR1) หากนี่เป็น SuperAdmin คนเดียว ให้สร้าง SuperAdmin ใหม่ก่อน แล้วจึงลดบทบาทคนนี้ |
| ผู้ใช้ถูกล็อกหลังเปลี่ยนบทบาท | ผู้ใช้ต้องออกจากระบบแล้วเข้าสู่ระบบใหม่ หากเข้าไม่ได้เลย สถานะบัญชีอาจถูกตั้งเป็นปิดใช้งาน ให้ SuperAdmin ตรวจสอบ |
| "อีเมลซ้ำ" ขณะสร้าง/เชิญผู้ใช้ | อีเมลต้องไม่ซ้ำภายใน tenant เดียวกัน (FR-020 BR6) ใช้อีเมลอื่น หรือตรวจว่าบัญชีนั้นมีอยู่แล้วในรายการ |
| ผู้ใช้ "ไม่มีสิทธิ์เข้าถึง" หรือ error 403 | บทบาท/กลุ่มสิทธิ์ของผู้ใช้ไม่ได้รับอนุญาตในฟีเจอร์นั้น ตรวจสอบตารางสิทธิ์ของกลุ่มสิทธิ์นั้น แล้วปรับระดับสิทธิ์ตามต้องการ |
| เมนูบางอย่างหายไปจาก sidebar ของผู้ใช้ | สวิตช์ แสดง/ซ่อน ของฟีเจอร์นั้นถูกตั้งเป็นปิดในกลุ่มสิทธิ์ เปิดสวิตช์แล้วบันทึก ให้ผู้ใช้เข้าสู่ระบบใหม่ |

---

## อ้างอิงด่วน (Quick Reference)

| ต้องการ... | ไปที่ | คลิก |
|------------|-------|------|
| ดูบัญชีผู้ใช้ Admin ทั้งหมด | ตั้งค่า → บัญชีผู้ใช้ | (โหลดอัตโนมัติ) |
| เชิญผู้ใช้ Admin คนใหม่ | ตั้งค่า → บัญชีผู้ใช้ | **เชิญผู้ใช้** → กรอกอีเมล + บทบาท → ส่งคำเชิญ |
| สร้างบัญชีผู้ใช้ด้วยตนเอง | ตั้งค่า → บัญชีผู้ใช้ | **+ สร้างบัญชีผู้ใช้** → กรอกฟอร์ม → **บันทึก** |
| เปลี่ยนบทบาทผู้ใช้ | ตั้งค่า → บัญชีผู้ใช้ → เลือกผู้ใช้ | เปลี่ยนช่อง บทบาท → **บันทึก** |
| ปิดใช้งานบัญชีผู้ใช้ | ตั้งค่า → บัญชีผู้ใช้ → เลือกผู้ใช้ | สลับสถานะเป็น ปิดใช้งาน → **บันทึก** |
| สร้างกลุ่มสิทธิ์ใหม่ | ตั้งค่า → สิทธิ์การเข้าถึง | **+ สร้างสิทธิ์** → ตั้งตารางสิทธิ์ → **บันทึก** |
| แก้ไขสิทธิ์รายฟีเจอร์ | ตั้งค่า → สิทธิ์การเข้าถึง → เลือกกลุ่มสิทธิ์ | ปรับ แสดง/ซ่อน + ระดับสิทธิ์ → **บันทึก** |

---

## ภาพหน้าจอที่ต้องเพิ่ม

| # | สิ่งที่ต้องถ่าย | เส้นทางหน้า |
|---|----------------|-------------|
| 1 | รายการบัญชีผู้ใช้ Admin แสดงชื่อ อีเมล บทบาท แผนก สถานะ | `/settings/admin-users` |
| 2 | แบบฟอร์มเชิญผู้ใช้ Admin พร้อมช่องอีเมลและบทบาท | `/settings/admin-users` (modal เชิญผู้ใช้) |
| 3 | แบบฟอร์มสร้างบัญชีผู้ใช้ Admin (ข้อมูลทั่วไป + บทบาท + สิทธิ์) | `/settings/admin-users/create` |
| 4 | หน้ารายละเอียด/แก้ไขผู้ใช้ Admin พร้อมช่องเลือกบทบาท | `/settings/admin-users/[id]` |
| 5 | การสลับสถานะบัญชีผู้ใช้เป็นปิดใช้งาน | `/settings/admin-users/[id]` (สวิตช์สถานะ) |
| 6 | รายการกลุ่มสิทธิ์ แสดงชื่อสิทธิ์ ประเภทแผนก จำนวนผู้ใช้ | `/settings/permissions` |
| 7 | ตารางสิทธิ์ แสดงฟีเจอร์ สวิตช์แสดง/ซ่อน และระดับสิทธิ์ | `/settings/permissions/create` |

---

*อ้างอิง: FR-015, FR-020, UF-015 · ยึดมาตรฐาน `06-support/user-manual-writing-standard.md`*
