角色與存取總覽
Optserv 如何控管存取:四種員工角色(Admin、HR、Manager、Employee)、工作區啟用條件,以及獨立的學生模型。
Optserv 採用以角色為基礎的存取控制(RBAC)來決定每個人能看見與能操作的範圍。員工(staff)共有四種角色,權限範圍依序收斂。
四種員工角色
| 角色 | 適用對象 | 範圍 |
|---|---|---|
| Admin | 創辦人、營運負責人 | 全公司存取——設定、帳務、所有工作區、所有資料 |
| HR | 人資/人事負責人 | 全公司的人事營運——不含帳務權限 |
| Manager | 團隊主管 | 以部門為範圍——只對自己團隊的核准與可見性 |
| Employee | 其他所有人 | 自助服務——只看自己的資料、申請與個人資訊 |
學生(OptClass)不是員工角色。他們採用完全獨立的模型——請見 OptClass 學生存取。
角色如何被落實
權限控管會套用在多個層級上——這是「縱深防禦」,不只是 UI 顯示開關:
- UI 顯示控管 — 導覽與功能會依角色隱藏
- 路由檢查 — 每次載入頁面都會在伺服器端驗證
- Row-Level Security(RLS) — 資料庫查詢會自動縮到使用者允許的範圍
- Edge Functions / RPC — 寫入操作在 API 層也會做角色檢查
角色不是「外觀上的」。即使透過修改 URL 或直接呼叫 API,Manager 也無法查到 HR 等級的資料。
各模組的存取範圍
| 模組 | Admin | HR | Manager | Employee |
|---|---|---|---|---|
| 公司設定 | ✅ 完整 | ❌ | ❌ | ❌ |
| 人員(檢視全員) | ✅ | ✅ | 只看部門 | 只看自己 |
| 出勤(檢視全員) | ✅ | ✅ | 只看部門 | 只看自己 |
| 請假(核准) | ✅ | ✅ | 只限部門 | ❌ |
| 加班(核准) | ✅ | ✅ | 只限部門 | ❌ |
| 招募 | ✅ | ✅ | ❌ | ❌ |
| 帳號共享 | ✅ | ✅ | 依共享項目 | 依共享項目 |
| 學校(員工檢視) | ✅ | ✅ | ✅ | ✅ |
| 帳務 | ✅ | ❌ | ❌ | ❌ |
本章重點頁面
- 員工 RBAC — 各模組的完整權限矩陣
- 工作區啟用(Gating) — 帳號共享與學校如何被啟用
- 招募存取 — 為什麼招募資料只給 Admin/HR
- OptClass 學生存取 — 學生如何與員工隔離