本卡屬 FR-166(母卡 CM-3109 延伸),決策者 2026-10-28 裁示開卡。Repo:compliance-manager-fe。依賴 CM-3183(BE 下發 ad_account)、CM-3184(Agent /api/me 回 ad_bound),兩張都已驗收通過。
白話
Agent 主控台的 AD 登入,現在是拿主系統上「這個人綁定的 AD 帳號」去問 AD,不再拿主系統帳號名去湊。例如主系統帳號 blsadmin 綁的是 AD 的 JEDICOGY\raymond:在主控台 AD 分頁,帳號填 blsadmin、密碼填 raymond 的 AD 密碼就能登。沒有綁 AD 的人(或者綁了、但改版後還沒用 AD 登入過主系統),AD 分頁對他不能用,只能用離線密碼。
後端都已經做好,畫面還沒跟上,所以有兩個地方要改:
- 主系統「Agent 管理 → ⋮ 離線操作者」對話框:每個人多顯示「AD 帳號:JEDICOGY\raymond」或「未綁定 AD(只能用離線密碼登入 Agent)」,管理員授權時就看得出這個人能不能用 AD 登 Agent。
- 主控台登入頁 AD 分頁的提示字,改成講清楚「帳號填主系統帳號、密碼填你在主系統綁定的那個 AD 帳號的密碼」,不然像 blsadmin 這種人會以為要填 raymond。
契約(已實查,照這個接)
- 離線操作者清單端點(對話框現在用的那支,GET /api/1.0/remote-agents/<agent_uid>/offline-operators)每列多一欄 ad_account:字串(含網域,例 JEDICOGY\raymond)或 null。來源:jedi-remote-agent offline_operator_service._serialize(CM-3183,套件 commit 1040e044)。null=沒綁 AD,或綁定後還沒用 AD 登入過主系統(主系統要等那個人下一次用 AD 登入才補上帳號)。
- 新加入、還沒存的列(OfflineOperatorsDialog.vue 第 125 行左右在前端組的那筆)沒有 ad_account:顯示「—」或不顯示,不要寫成「未綁定」(存檔前其實不知道)。
- 主控台 /console/api/me 已回 ad_bound(布林;local-admin 與名單外的人不回這個鍵,CM-3184,Agent commit 19991bd)。本卡登入頁的改動只動提示字,不需要用 ad_bound;ad_bound 只在登入後才拿得到(刻意的:登入前不能讓人看出誰有綁 AD,SR-01.1),登入頁不要去打任何 API 查綁定狀態。
怎麼做
- 【extend】src/views/remote-agent/OfflineOperatorsDialog.vue(321 行):「使用者」欄(第 216~221 行,現在兩行:顯示名+login_name)下面多一行小字:有 ad_account 顯示「AD:{ad_account}」;ad_account 為 null 且這列已存過(有 uid)顯示「未綁定 AD」,滑過或旁邊說明「只能用離線密碼登入 Agent」;新加的列不顯示。用既有 text-xs text-500 的樣式,不加新欄位(表格已經很寬)。
- 【extend】i18n src/config/locales/i18n/{zh-tw,en}/remote-agent.json 的 remote_agent_manage 底下加兩三顆 key(例 offline_ops_ad_account、offline_ops_ad_unbound、offline_ops_ad_unbound_hint)。
- 【extend】src/config/locales/i18n/{zh-tw,en}/agent-console.json 的 agent_console.login.hint_ldap(現為「公司 AD 密碼,由這台 Agent 直接向 AD 伺服器驗證」)改成講清楚帳號與密碼各填什麼。建議文字:「帳號填主系統帳號;密碼填你在主系統綁定的 AD 帳號的密碼。沒綁定 AD 的人請改用離線密碼。」en 對應。console/Login.vue 不用改(它本來就讀 hint_${activeTab})。
- 【不做】Agent 主控台登入後的畫面顯示 ad_bound(沒人要求);改後端;在登入頁查綁定狀態。
改哪些檔
- src/views/remote-agent/OfflineOperatorsDialog.vue
- src/config/locales/i18n/zh-tw/remote-agent.json、src/config/locales/i18n/en/remote-agent.json
- src/config/locales/i18n/zh-tw/agent-console.json、src/config/locales/i18n/en/agent-console.json(只改 hint_ldap 一顆)
- OfflineOperatorsDialog 的既有 spec(先 ls src/views/remote-agent/tests 找),沒有就新開一支