This commit is contained in:
2026-07-16 09:53:14 +07:00
parent 0fc112a2e8
commit 29cec708a3
1236 changed files with 212848 additions and 0 deletions

146
plans/role-permission.md Normal file
View File

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