← 返回目錄

系統管理|每次請求的身分與權限判斷

系統管理|每次請求的身分與權限判斷 由 Archify 產生的工作流程圖。 01 / 請求進入 02 / 身分重建 getCurrentUser 03 / 病房範圍 04 / 權限判斷 EX / 拒絕 session 授權集合 入口把關 proxy 樂觀檢查 · 無 cookie → /login · 請求進入 › session · 產生 x-request-id 供稽核 proxy 樂觀檢查 無 cookie → /login 產生 x-request-id 供稽核 側欄選單 navFor · 只列有 <頁>:view 的啟用頁 · 請求進入 › 入口把關 · 讀 directory.menu 側欄選單 navFor 只列有 <頁>:view 的啟用頁 讀 directory.menu 驗證 session · HS256 簽章,取 staffId · 身分重建 getCurrentUser › session 驗證 session HS256 簽章,取 staffId 人員與帳號仍有效 · 停用或密碼於簽發後變更即失效 · 身分重建 getCurrentUser › session · 讀 directory.staff・account・account_password 人員與帳號仍有效 停用或密碼於簽發後變更即失效 讀 directory.staff・account・account_password 今日有效角色與權限 · 聯集;唯讀角色只留檢視列印匯出 · 身分重建 getCurrentUser › 授權集合 · 讀 staff_role・role・role_permission 今日有效角色與權限 聯集;唯讀角色只留檢視列印匯出 讀 staff_role・role・role_permission 病房範圍 unitScope · 未設定或 admin=全部病人 · 病房範圍 › 授權集合 · 讀 directory.staff_unit_scope 病房範圍 unitScope 未設定或 admin=全部病人 讀 directory.staff_unit_scope 列表過濾 · caseScopeCondition 加 SQL 條件 · 病房範圍 › 授權集合 · 讀 core.v_case_unit 列表過濾 caseScopeCondition 加 SQL 條件 讀 core.v_case_unit 單筆判斷 caseVisible · 頁面範圍外 404;動作拋錯 · 病房範圍 › 授權集合 · assertCaseVisible/assertCaseInScope 單筆判斷 caseVisible 頁面範圍外 404;動作拋錯 assertCaseVisible/assertCaseInScope 角色模擬 applySimulation · 僅 admin;改用該角色權限 · 權限判斷 › 授權集合 · cookie dunren_sim_role 角色模擬 applySimulation 僅 admin;改用該角色權限 cookie dunren_sim_role requirePermission · admin 全部,否則須持權限碼 · 權限判斷 › 入口把關 · 表單為 form.<code>:<動作> requirePermission admin 全部,否則須持權限碼 表單為 form.<code>:<動作> 導向 /login · getCurrentUser 回傳 null · 拒絕 › session 導向 /login getCurrentUser 回傳 null 導向 /403 或改密碼頁 · 須改密碼者先導 /account/password · 拒絕 › 入口把關 導向 /403 或改密碼頁 須改密碼者先導 /account/password 無效或過期 已失效 不足 有效 unitScope 權限集合 選單過濾 列表 單筆/動作 圖例 使用者介面 Agent 邏輯 政策 脈絡 / 追蹤