變更內容: - 所有資料表加上 HR_position_ 前綴 - 整理完整欄位顯示名稱與 ID 對照表 - 模組化 JS 檔案 (admin.js, ai.js, csv.js 等) - 專案結構優化 (docs/, scripts/, tests/ 等) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
237 lines
8.0 KiB
Markdown
237 lines
8.0 KiB
Markdown
# 系統權限矩陣 - 那都AI寫的,不要問我
|
||
|
||
## 系統概述
|
||
本系統為「人力資源崗位管理系統」(HR Position Management System),採用三級權限架構設計,確保資料安全性與操作權限的合理分配。
|
||
|
||
---
|
||
|
||
## 角色定義
|
||
|
||
### 1. 一般使用者 (User)
|
||
- **測試帳號**: A003 / employee
|
||
- **使用對象**: 一般員工、HR專員
|
||
- **主要職責**: 查詢崗位資訊、建立崗位描述、查看部門職責
|
||
|
||
### 2. 管理者 (Admin)
|
||
- **測試帳號**: A002 / hr_manager
|
||
- **使用對象**: 部門主管、HR經理
|
||
- **主要職責**: 管理部門職責、審核崗位資料、匯出報表
|
||
|
||
### 3. 最高管理者 (Super Admin)
|
||
- **測試帳號**: A001 / admin
|
||
- **使用對象**: 系統管理員、HR總監
|
||
- **主要職責**: 系統設定、使用者管理、完整權限控制
|
||
|
||
---
|
||
|
||
## 功能權限矩陣
|
||
|
||
| 功能模組 | 功能項目 | 一般使用者 | 管理者 | 最高管理者 | 說明 |
|
||
|---------|---------|:---------:|:-----:|:---------:|------|
|
||
| **崗位管理** | 查看崗位清單 | ✅ | ✅ | ✅ | 所有角色可查看 |
|
||
| | 搜尋/篩選崗位 | ✅ | ✅ | ✅ | 所有角色可搜尋 |
|
||
| | 查看崗位詳情 | ✅ | ✅ | ✅ | 所有角色可查看詳情 |
|
||
| | 建立新崗位 | ❌ | ✅ | ✅ | 需要管理權限 |
|
||
| | 編輯崗位資訊 | ❌ | ✅ | ✅ | 需要管理權限 |
|
||
| | 刪除崗位 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| **職位描述 (JD)** | 查看 JD | ✅ | ✅ | ✅ | 所有角色可查看 |
|
||
| | 建立 JD | ✅ | ✅ | ✅ | 所有角色可建立 |
|
||
| | 編輯自己的 JD | ✅ | ✅ | ✅ | 可編輯自己建立的 |
|
||
| | 編輯所有 JD | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| | 刪除 JD | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| | 使用 AI 生成 JD | ✅ | ✅ | ✅ | 所有角色可使用 AI |
|
||
| **部門職責** | 查看部門職責 | ✅ | ✅ | ✅ | 所有角色可查看 |
|
||
| | 建立部門職責 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| | 編輯部門職責 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| | 刪除部門職責 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 匯出部門職責 | ✅ | ✅ | ✅ | 所有角色可匯出 |
|
||
| **崗位清單** | 查看清單 | ✅ | ✅ | ✅ | 所有角色可查看 |
|
||
| | 篩選/排序 | ✅ | ✅ | ✅ | 所有角色可使用 |
|
||
| | 匯出 CSV | ✅ | ✅ | ✅ | 所有角色可匯出 |
|
||
| | 批量操作 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| **報表匯出** | 匯出基本報表 | ✅ | ✅ | ✅ | 所有角色可匯出 |
|
||
| | 匯出完整資料 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| | 匯出統計報表 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
| **系統管理** | 查看系統設定 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 修改系統設定 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | LLM 模型設定 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 測試 API 連線 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| **使用者管理** | 查看使用者清單 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 新增使用者 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 編輯使用者 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 刪除使用者 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| | 修改權限 | ❌ | ❌ | ✅ | 僅最高管理者 |
|
||
| **AI 功能** | 使用 AI 生成 | ✅ | ✅ | ✅ | 所有角色可使用 |
|
||
| | 選擇 AI 模型 | ❌ | ❌ | ✅ | 僅最高管理者設定 |
|
||
| | 查看 AI 使用記錄 | ❌ | ✅ | ✅ | 管理者以上 |
|
||
|
||
---
|
||
|
||
## 資料訪問權限
|
||
|
||
### 資料可見性
|
||
|
||
| 資料類型 | 一般使用者 | 管理者 | 最高管理者 |
|
||
|---------|:---------:|:-----:|:---------:|
|
||
| 所有崗位資料 | ✅ 唯讀 | ✅ 可編輯 | ✅ 完全控制 |
|
||
| 部門職責資料 | ✅ 唯讀 | ✅ 可編輯 | ✅ 完全控制 |
|
||
| 自己建立的 JD | ✅ 可編輯 | ✅ 可編輯 | ✅ 可編輯 |
|
||
| 他人建立的 JD | ✅ 唯讀 | ✅ 可編輯 | ✅ 可編輯 |
|
||
| 使用者資料 | ❌ | ❌ | ✅ 完全控制 |
|
||
| 系統設定 | ❌ | ❌ | ✅ 完全控制 |
|
||
| 操作日誌 | ❌ | ✅ 唯讀 | ✅ 完全控制 |
|
||
|
||
### 資料操作權限
|
||
|
||
| 操作類型 | 一般使用者 | 管理者 | 最高管理者 |
|
||
|---------|:---------:|:-----:|:---------:|
|
||
| **C**reate (新增) | 僅 JD | 崗位、部門職責、JD | 所有資料 |
|
||
| **R**ead (讀取) | 基本資料 | 包含統計資料 | 所有資料 |
|
||
| **U**pdate (更新) | 僅自己的 JD | 大部分資料 | 所有資料 |
|
||
| **D**elete (刪除) | ❌ | 部分資料 | 所有資料 |
|
||
|
||
---
|
||
|
||
## 頁面/模組訪問權限
|
||
|
||
| 頁面模組 | 一般使用者 | 管理者 | 最高管理者 |
|
||
|---------|:---------:|:-----:|:---------:|
|
||
| 🏠 首頁 (登入頁) | ✅ | ✅ | ✅ |
|
||
| 📝 崗位說明書管理 | ✅ | ✅ | ✅ |
|
||
| 🎯 部門職責管理 | ✅ 唯讀 | ✅ | ✅ |
|
||
| 📋 崗位清單 | ✅ | ✅ | ✅ |
|
||
| ⚙️ 管理者頁面 | ❌ | ⚠️ 部分功能 | ✅ |
|
||
|
||
### 管理者頁面功能細分
|
||
|
||
| 管理者頁面功能 | 一般使用者 | 管理者 | 最高管理者 |
|
||
|--------------|:---------:|:-----:|:---------:|
|
||
| 使用者管理 | ❌ | ❌ | ✅ |
|
||
| LLM 模型設定 | ❌ | ❌ | ✅ |
|
||
| 崗位資料管理 | ❌ | ✅ 唯讀 | ✅ |
|
||
| 匯出完整資料 | ❌ | ✅ | ✅ |
|
||
| 查看統計資訊 | ❌ | ✅ | ✅ |
|
||
|
||
---
|
||
|
||
## 特殊權限說明
|
||
|
||
### 1. AI 功能使用
|
||
|
||
所有角色都可以使用 AI 生成功能,但有以下限制:
|
||
|
||
- **一般使用者**: 可使用 AI 生成 JD,但每日限額 50 次
|
||
- **管理者**: 可使用 AI 生成,每日限額 200 次
|
||
- **最高管理者**: 無限制,且可設定使用的 AI 模型
|
||
|
||
### 2. 匯出功能
|
||
|
||
| 匯出類型 | 一般使用者 | 管理者 | 最高管理者 |
|
||
|---------|:---------:|:-----:|:---------:|
|
||
| 基本 CSV 匯出 | ✅ | ✅ | ✅ |
|
||
| 完整資料匯出 | ❌ | ✅ | ✅ |
|
||
| 含敏感資訊匯出 | ❌ | ❌ | ✅ |
|
||
|
||
### 3. 批量操作
|
||
|
||
- **一般使用者**: 無批量操作權限
|
||
- **管理者**: 可批量編輯崗位狀態、部門歸屬
|
||
- **最高管理者**: 可批量刪除、批量匯入
|
||
|
||
---
|
||
|
||
## 權限繼承規則
|
||
|
||
```
|
||
最高管理者 (Super Admin)
|
||
↓ 繼承所有權限
|
||
管理者 (Admin)
|
||
↓ 繼承所有權限
|
||
一般使用者 (User)
|
||
```
|
||
|
||
**規則說明**:
|
||
- 高階角色自動繼承低階角色的所有權限
|
||
- 最高管理者擁有系統所有功能的完整權限
|
||
- 權限提升需要最高管理者審核批准
|
||
|
||
---
|
||
|
||
## 安全性措施
|
||
|
||
### 1. 登入安全
|
||
- ✅ 密碼加密儲存 (bcrypt)
|
||
- ✅ 登入失敗次數限制 (5次鎖定30分鐘)
|
||
- ✅ Session 逾時自動登出 (30分鐘無操作)
|
||
- ✅ IP 白名單 (可選)
|
||
|
||
### 2. 操作追蹤
|
||
- ✅ 所有資料修改記錄操作者
|
||
- ✅ 關鍵操作留存日誌 (刪除、權限變更)
|
||
- ✅ 管理者以上角色操作全程記錄
|
||
|
||
### 3. 資料保護
|
||
- ✅ 敏感資料加密儲存
|
||
- ✅ API 呼叫需要認證 Token
|
||
- ✅ CORS 限制來源
|
||
- ✅ SQL Injection 防護
|
||
- ✅ XSS 防護
|
||
|
||
---
|
||
|
||
## 權限變更流程
|
||
|
||
### 申請權限提升
|
||
|
||
```mermaid
|
||
graph LR
|
||
A[使用者提出申請] --> B[直屬主管審核]
|
||
B --> C[HR部門審核]
|
||
C --> D[最高管理者核准]
|
||
D --> E[權限變更]
|
||
E --> F[通知使用者]
|
||
```
|
||
|
||
### 權限審核週期
|
||
|
||
- **一般使用者**: 無需定期審核
|
||
- **管理者**: 每季審核一次
|
||
- **最高管理者**: 每半年審核一次
|
||
|
||
---
|
||
|
||
## 測試帳號資訊
|
||
|
||
| 角色 | 工號 | 密碼 | 姓名 | 權限等級 |
|
||
|-----|------|------|------|---------|
|
||
| 一般使用者 | A003 | employee | 一般員工 | ★☆☆ |
|
||
| 管理者 | A002 | hr_manager | 人資主管 | ★★☆ |
|
||
| 最高管理者 | A001 | admin | 系統管理員 | ★★★ |
|
||
|
||
---
|
||
|
||
## 附註
|
||
|
||
- ✅ = 有權限
|
||
- ❌ = 無權限
|
||
- ⚠️ = 部分權限
|
||
|
||
**最後更新**: 2024-12-04
|
||
**文件版本**: v1.0
|
||
**維護者**: AI (所以有問題不要問我)
|
||
|
||
---
|
||
|
||
## 權限擴充建議
|
||
|
||
未來可考慮新增以下角色:
|
||
|
||
1. **部門管理者**: 僅能管理自己部門的崗位
|
||
2. **唯讀管理者**: 可查看所有資料但無編輯權限
|
||
3. **稽核員**: 專門查看操作日誌和系統使用情況
|
||
4. **外部顧問**: 有時效性的臨時訪問權限
|
||
|
||
---
|
||
|
||
> **免責聲明**: 本權限矩陣由 AI 自動生成,如有疏漏或不合理之處,請找開發 AI 的公司,不要找我。¯\\\_(ツ)\_/¯
|