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