Files
alla-tms/plans/role-permission.md
2026-07-16 09:53:14 +07:00

7.8 KiB

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