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

466 lines
6.8 KiB
Markdown

# Prompt.md — Role & Permission Management (Coding Phase 1)
## Objective
เริ่มพัฒนาระบบ **Role & Permission Management** ตามแผนใน
`docs/role-permission-management-plan.md`
โดยยึดตามเอกสารนี้เป็นหลัก และ **ห้ามเพิ่ม Requirement ใหม่เอง**
---
# Required Reading
ก่อนเริ่ม Coding ต้องอ่านเอกสารต่อไปนี้
- `docs/PROJECT_ARCHITECTURE.md`
- `docs/AI_DEVELOPMENT_GUIDE.md`
- `AGENTS.md`
- `docs/role-permission-management-plan.md`
จากนั้นตรวจสอบโครงสร้างของโปรเจกต์จริงก่อนลงมือแก้ไข
ห้ามเดาโครงสร้าง
ต้อง Reuse Shared Components และ Shared Patterns ที่มีอยู่
---
# Coding Scope
ใน Phase นี้
ให้เริ่มสร้างโครงสร้างของ Feature Role & Permission Management
โดย **ยังไม่ต้องย้าย Feature อื่นมาใช้ Permission-first**
ยังไม่ต้องแก้ไขระบบ Authorization ของระบบเดิม
ยังไม่ต้องลบ Compatibility Mode
---
# Features to Implement
## 1. Permission Management Feature Module
สร้าง Feature ใหม่
```text
src/features/permission-management/
```
โดยจัดโครงสร้างให้สอดคล้องกับ Feature อื่นของโปรเจกต์
ตัวอย่าง
```text
api/
components/
schemas/
server/
hooks/
types/
```
ต้อง Reuse pattern เดิมของโปรเจกต์
---
## 2. Permission Template Management
สร้างหน้าจอ
```text
/dashboard/permissions/templates
```
รองรับ
- แสดงรายการ Permission Template
- Search
- Pagination
- Sorting
- Status Badge
- Assigned User Count
- Create
- Edit
- Clone
- Activate
- Deactivate
- Soft Delete
ใช้
- DataTable
- Sheet
- Dialog
- AlertDialog
จาก Shared Components
---
## 3. Permission Matrix
สร้างหน้า
```text
/dashboard/permissions/matrix
```
รองรับ
Grouped Permission
เช่น
Dashboard
Training Records
Announcements
Online Lessons
Employees
Reports
Settings
Permission Management
แต่ละ Module
มี Action
- View
- Create
- Edit
- Delete
- Approve
- Publish
- Export
- Manage
ใช้รูปแบบ Checklist
---
## 4. User Permission Assignment
สร้างหน้า
```text
/dashboard/permissions/users
```
รองรับ
- Search User
- แสดงข้อมูลพนักงาน
- Assign Template (1 Template ต่อ User)
- Extra Permission
- Deny Permission
- Effective Permission Preview
- Save Assignment
ต้องใช้ Transaction ฝั่ง Server
---
## 5. Permission Audit Logs
สร้างหน้า
```text
/dashboard/permissions/audit-logs
```
Reuse
Audit Log Listing เดิม
เพิ่มเฉพาะ Data Source
และ Filter
---
# API
สร้าง Route Handlers ตามแผน
Permission Templates
```text
GET
POST
PATCH
DELETE
Clone
Activate
Deactivate
```
Permission Assignment
```text
GET
PUT
POST Override
PATCH Override
DELETE Override
```
Permission Catalog
```text
GET
```
Permission Audit Logs
```text
GET
```
---
# Validation
ใช้
Zod
ทุก Request
ทุก Mutation
ทุก Form
ห้ามใช้ Manual Validation
---
# UI
ใช้ Shared UI เดิมทั้งหมด
เช่น
- Button
- Badge
- Dialog
- Sheet
- AlertDialog
- TanStack Table
- TanStack Query
- TanStack Form
ห้ามสร้าง UI Component ซ้ำ
---
# Authorization
หน้าทั้งหมด
API ทุกตัว
ต้องใช้
Super Admin เท่านั้น
ห้ามใช้
HRD
IT
Manager
Employee
เข้าถึงได้
---
# Database
ใช้ Schema ปัจจุบัน
ห้ามแก้ Migration
ห้ามสร้าง Migration ใหม่
หากพบจุดที่ Schema ยังไม่รองรับ
ให้เขียน
TODO
พร้อม Comment
และสรุปไว้ใน Report
---
# Compatibility
ต้องไม่ทำให้
Business Role
เสียหาย
ต้องไม่ลบ
- isHRD()
- isIT()
- businessRole
ต้องไม่เปลี่ยน
Navigation
ของระบบเดิม
ยกเว้นเพิ่มเมนูใหม่ของ Permission Management
---
# Navigation
เพิ่มเมนูใหม่
```text
Permission Management
```
ภายในมี
- Permission Templates
- Permission Matrix
- User Permissions
- Permission Audit Logs
เมนูนี้
Super Admin เท่านั้นที่มองเห็น
---
# Coding Rules
- Reuse Existing Pattern
- TypeScript Strict
- No Any
- No Dead Code
- No Duplicate Logic
- Reuse Query Pattern
- Reuse Mutation Pattern
- Reuse DataTable Pattern
- Reuse Sheet Pattern
- Reuse Form Pattern
---
# Files Expected
สร้างตามโครงสร้างที่ระบุใน
`docs/role-permission-management-plan.md`
หากมีไฟล์ใดต้องเปลี่ยน
ให้แก้เฉพาะเท่าที่จำเป็น
---
# Deliverables
เมื่อ Coding เสร็จแล้ว
ให้สร้าง Report
```text
docs/role-permission-management-implementation-report.md
```
ภายในประกอบด้วย
## 1. Summary
สิ่งที่พัฒนาแล้ว
---
## 2. Files Created
ไฟล์ใหม่ทั้งหมด
---
## 3. Files Modified
ไฟล์ที่แก้ไข
---
## 4. API Implemented
Route ทั้งหมด
---
## 5. UI Pages
หน้าที่สร้าง
---
## 6. Remaining TODO
สิ่งที่ยังไม่ได้ทำ
---
## 7. Known Limitations
ข้อจำกัด
---
## 8. Compatibility Status
สิ่งที่ยังใช้ Compatibility Mode
---
## Important Rules
- ห้ามแก้ Requirement
- ห้ามเพิ่ม Feature ใหม่
- ห้าม Refactor ส่วนอื่นของระบบ
- ห้ามลบระบบเดิม
- ต้องทำเฉพาะตามขอบเขตของ `docs/role-permission-management-plan.md`
- หากพบปัญหา ให้ใช้ TODO และบันทึกไว้ใน Report แทนการเปลี่ยน Architecture เอง