ช่วยตรวจสอบระบบ Role & Permission ของโปรเจค Training Management System โดย “ยังไม่ต้องแก้ไขโค้ด”

เป้าหมาย:
ตรวจสอบว่าแต่ละ Role ในระบบมีสิทธิ์และเมนูตรงตาม Requirement หรือไม่ และจัดทำเอกสารผลการ Review เป็นไฟล์ Markdown

Role ที่ต้องตรวจสอบ:

1. Employee
2. HRD Admin
3. IT Admin

Requirement สิทธิ์ที่ต้องตรวจสอบ:

Employee:

- เห็นเฉพาะข้อมูลของตนเอง
- เห็นเมนู Dashboard, ประวัติการอบรม, การแจ้งเตือน, โปรไฟล์
- สามารถเพิ่มประวัติการอบรมของตนเองได้
- ไม่สามารถแก้ไขข้อมูลหลังส่งแล้ว
- ไม่สามารถอนุมัติรายการอบรม
- ไม่สามารถกำหนดหมวด K/S/A
- ไม่สามารถเข้าถึงเมนูพนักงาน, หลักสูตร, รายงาน, นโยบาย, ผู้ใช้งาน, ตั้งค่าระบบ, Audit Log

HRD Admin:

- เห็นข้อมูลการอบรมของพนักงานทั้งหมด
- เห็นเมนู Dashboard, ประวัติการอบรม, หลักสูตร, Import หลักสูตร, รายงาน, นโยบาย, การแจ้งเตือน, โปรไฟล์
- สามารถตรวจสอบ/อนุมัติ/ไม่อนุมัติรายการอบรม
- สามารถกำหนดหมวด K/S/A
- สามารถแก้ไขข้อมูลการอบรมได้
- สามารถจัดการหลักสูตรและ Import หลักสูตรได้
- สามารถ Export รายงานได้
- ห้ามเห็นเมนูพนักงาน
- ห้ามเห็นเมนูผู้ใช้งาน
- ห้ามเห็นเมนูตั้งค่าระบบ
- ห้ามเห็นเมนู Audit Log

IT Admin:

- เห็นและจัดการข้อมูลได้ทั้งระบบ
- เห็นเมนู Dashboard, ผู้ใช้งาน, พนักงาน, ประวัติการอบรม, หลักสูตร, Import หลักสูตร, รายงาน, นโยบาย, ตั้งค่าระบบ, Audit Log, การแจ้งเตือน, โปรไฟล์
- สามารถจัดการผู้ใช้งานและ Role ได้
- สามารถจัดการข้อมูลพนักงานได้
- สามารถดู Audit Log ได้
- สามารถตั้งค่าระบบได้

สิ่งที่ต้องตรวจสอบในโค้ด:

1. ตรวจสอบ Sidebar/Menu config ว่าแสดงเมนูตาม Role ถูกต้องหรือไม่
2. ตรวจสอบ Route Protection ว่าแต่ละ Role เข้า URL โดยตรงได้หรือไม่
3. ตรวจสอบ Page-Level Permission ว่าหน้าแต่ละหน้าตรวจสิทธิ์ถูกต้องหรือไม่
4. ตรวจสอบ API/Server Actions/Route Handlers ว่ามีการเช็กสิทธิ์ก่อนทำงานหรือไม่
5. ตรวจสอบ Query/Data Scope ว่า Employee เห็นเฉพาะข้อมูลตัวเอง และ HRD/IT เห็นข้อมูลที่เหมาะสม
6. ตรวจสอบ Action Permission เช่น Create, Update, Delete, Approve, Export, Import
7. ตรวจสอบว่า HRD ไม่สามารถเข้าถึงเมนู/หน้า “พนักงาน” และ “ผู้ใช้งาน”
8. ตรวจสอบว่า Import พนักงานถูกนำออกแล้ว และยังเหลือเฉพาะ Import หลักสูตรหรือไม่
9. ตรวจสอบว่าไม่มีการ hardcode role แบบกระจัดกระจายโดยไม่ผ่าน helper/middleware/permission config
10. ตรวจสอบ Audit Log เฉพาะ IT Admin

ข้อจำกัดสำคัญ:

- ห้ามแก้ไขโค้ด
- ห้าม refactor
- ห้ามลบไฟล์
- ห้ามเพิ่มฟีเจอร์
- ทำเฉพาะการตรวจสอบและสรุปผลเท่านั้น

ให้สร้างไฟล์เอกสารผลการตรวจสอบที่:
docs/role-permission-review.md

โครงสร้างเอกสารที่ต้องการ:

# Role & Permission Review

## 1. Scope การตรวจสอบ

อธิบายว่าตรวจสอบส่วนใดบ้าง

## 2. Requirement Summary

สรุปสิทธิ์ของแต่ละ Role แบบตาราง

## 3. Menu Visibility Review

ตรวจสอบเมนูที่แต่ละ Role เห็นได้
ให้ทำตาราง:

- Menu
- Employee
- HRD Admin
- IT Admin
- Current Implementation
- Result: Pass / Fail / Need Review
- Note

## 4. Route Protection Review

ตรวจสอบแต่ละ route/page ว่า role ไหนเข้าได้
ให้ระบุไฟล์ที่เกี่ยวข้อง

## 5. API / Server Action Permission Review

ตรวจสอบ action หรือ API ที่เกี่ยวข้องกับ:

- training records
- approvals
- courses
- imports
- reports
- employees
- users
- settings
- audit logs

## 6. Data Scope Review

ตรวจสอบว่า:

- Employee เห็นเฉพาะข้อมูลตนเอง
- HRD เห็นข้อมูลที่ต้องใช้ในการตรวจสอบอบรม
- IT เห็นข้อมูลทั้งระบบ

## 7. Findings

ให้สรุปเป็นรายการ:

- รหัส Finding เช่น ROLE-001
- ระดับความเสี่ยง: High / Medium / Low
- รายละเอียดปัญหา
- ไฟล์ที่พบ
- ผลกระทบ
- แนวทางแก้ไขที่แนะนำ

## 8. Summary

สรุปภาพรวมว่า Role Permission ปัจจุบันถูกต้องกี่ส่วน และมีจุดไหนที่ควรแก้ไข

รูปแบบการทำงาน:

1. อ่านเอกสารโปรเจคก่อน เช่น AGENTS.md, docs/AI_DEVELOPMENT_GUIDE.md, docs/PROJECT_ARCHITECTURE.md หากมี
2. ตรวจสอบ implementation จริงในโค้ด
3. ห้ามแก้ไขไฟล์โค้ด
4. สร้างหรืออัปเดตเฉพาะไฟล์ docs/role-permission-review.md
5. หลังทำเสร็จ ให้สรุปผลสั้น ๆ ในแชท พร้อมบอก path ของไฟล์เอกสารที่สร้าง

หากพบจุดที่ควรแก้ไข ให้เขียนเป็น Recommendation เท่านั้น ห้ามแก้ไขโค้ดในรอบนี้
