Access Control

Outlook 登入與部門權限

本頁定義 HS Project Flow 的登入、使用者審核、部門分流與唯讀模式。目標是讓操作者來源可追蹤,同時保留可插拔開關,不在尚未啟用權限時破壞既有流程。

環境開關

OUTLOOK_AUTH_REQUIRED=false
PERMISSION_REQUIRED=false
  • OUTLOOK_AUTH_REQUIRED=true:進入系統前必須登入 Outlook / Microsoft 帳號。
  • PERMISSION_REQUIRED=true:啟用部門操作限制;使用者只能操作自己部門頁面。
  • PERMISSION_REQUIRED=false:只記錄登入者與填寫人,不限制既有操作。

使用者生命週期

  1. 使用者點選左側登入按鈕,透過 Outlook OAuth 登入。
  2. API 取得使用者顯示名稱與 Email 後,寫入 app_users
  3. 如果系統尚無已核准 Admin,第一位登入者會自動成為 adminapproved,並預設分配到工程部。
  4. 後續第一次登入者會成為 memberpending、未啟用。
  5. Admin 進入 系統管理 > 使用者管理,分配部門、角色與審核狀態。
  6. 使用者被核准後,若啟用權限模式,即可操作自己部門頁面;其他部門頁面只可瀏覽。

部門頁面對應

部門代碼 部門 可操作頁面
sales 業務部 開案、規格書
engineering 工程部 產品管理、建立 BOM、匯入 BOM、查詢 BOM
procurement 採購部 待採購清單、匯入採購單、叫貨追蹤、到貨確認、採購明細、廠商品項對照
warehouse 倉庫 倉庫待收貨、已入庫、待出庫
finance 財務部 報表查詢

資料表

使用者資料以 app_users 為主,部門資料以 departments 為主。

  • display_name:Outlook 顯示名稱。
  • email:Outlook / Microsoft Email,唯一值。
  • department_id:對應 departments
  • role_codeadminmember
  • approval_statuspendingapproveddisabled
  • is_active:是否允許操作。

API

GET /api/auth/outlook/me
GET /api/admin/users
PUT /api/admin/users/{id}

/api/auth/outlook/me 會同時回傳登入狀態與權限欄位,例如 departmentCoderoleCodeapprovalStatusisAdmincanOperate