7.8 KiB
ช่วยตรวจสอบระบบ Role & Permission ของโปรเจค Training Management System โดย “ยังไม่ต้องแก้ไขโค้ด”
เป้าหมาย: ตรวจสอบว่าแต่ละ Role ในระบบมีสิทธิ์และเมนูตรงตาม Requirement หรือไม่ และจัดทำเอกสารผลการ Review เป็นไฟล์ Markdown
Role ที่ต้องตรวจสอบ:
- Employee
- HRD Admin
- 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 ได้
- สามารถตั้งค่าระบบได้
สิ่งที่ต้องตรวจสอบในโค้ด:
- ตรวจสอบ Sidebar/Menu config ว่าแสดงเมนูตาม Role ถูกต้องหรือไม่
- ตรวจสอบ Route Protection ว่าแต่ละ Role เข้า URL โดยตรงได้หรือไม่
- ตรวจสอบ Page-Level Permission ว่าหน้าแต่ละหน้าตรวจสิทธิ์ถูกต้องหรือไม่
- ตรวจสอบ API/Server Actions/Route Handlers ว่ามีการเช็กสิทธิ์ก่อนทำงานหรือไม่
- ตรวจสอบ Query/Data Scope ว่า Employee เห็นเฉพาะข้อมูลตัวเอง และ HRD/IT เห็นข้อมูลที่เหมาะสม
- ตรวจสอบ Action Permission เช่น Create, Update, Delete, Approve, Export, Import
- ตรวจสอบว่า HRD ไม่สามารถเข้าถึงเมนู/หน้า “พนักงาน” และ “ผู้ใช้งาน”
- ตรวจสอบว่า Import พนักงานถูกนำออกแล้ว และยังเหลือเฉพาะ Import หลักสูตรหรือไม่
- ตรวจสอบว่าไม่มีการ hardcode role แบบกระจัดกระจายโดยไม่ผ่าน helper/middleware/permission config
- ตรวจสอบ 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 ปัจจุบันถูกต้องกี่ส่วน และมีจุดไหนที่ควรแก้ไข
รูปแบบการทำงาน:
- อ่านเอกสารโปรเจคก่อน เช่น AGENTS.md, docs/AI_DEVELOPMENT_GUIDE.md, docs/PROJECT_ARCHITECTURE.md หากมี
- ตรวจสอบ implementation จริงในโค้ด
- ห้ามแก้ไขไฟล์โค้ด
- สร้างหรืออัปเดตเฉพาะไฟล์ docs/role-permission-review.md
- หลังทำเสร็จ ให้สรุปผลสั้น ๆ ในแชท พร้อมบอก path ของไฟล์เอกสารที่สร้าง
หากพบจุดที่ควรแก้ไข ให้เขียนเป็น Recommendation เท่านั้น ห้ามแก้ไขโค้ดในรอบนี้