ช่วยตรวจสอบระบบ 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 เท่านั้น ห้ามแก้ไขโค้ดในรอบนี้