排班主管 · 09
移除主管
移除指定 scope 的 manager 權限,同時保留主管帳號與其他門市權限。
完成結果林小米店長不再管理台北信義店,但帳號與台北中正店的 manager 權限都繼續保留。
實際案例
林小米店長目前同時管理台北信義店與台北中正店。這次只移除信義店權限,不能把整份 roles 清空,也不是刪除主管帳號。
資料流
- 1取得目前完整角色找到 0dab2cd6-702a-4e94-876d-4a91c514a76e,確認同時具有信義與中正 Merchant role。
GET /v1/managers - 2定位要移除的 scope比對 unit=merchant、scope=tkfv5t、role=manager。
role match - 3送出移除變更只提供 oldRole,代表移除該 scope 的既有權限。
PUT /v1/manager/{id}/roles - 4回讀角色確認信義店消失、中正店仍保留。
GET /v1/managers
欄位 mapping
| 欄位 | 移除項目 | 應保留項目 |
|---|---|---|
unit | merchant | merchant |
scope | tkfv5t | tlcoej |
| role | manager | manager |
Request
PUT /v1/manager/0dab2cd6-702a-4e94-876d-4a91c514a76e/roles
Content-Type: application/json
{
"roles": [
{
"scope": "tkfv5t",
"unit": "merchant",
"oldRole": "manager"
}
]
}
預期回讀 Response
managers.json 保留操作前的雙店權限;下列為移除後應以 GET /v1/managers 驗證的預期狀態:
{
"data": [
{
"id": "0dab2cd6-702a-4e94-876d-4a91c514a76e",
"email": "manager.lin@example.com",
"title": "門市店長",
"name": "林小米店長",
"nickname": "Happy",
"portrait": "https://example.com/portraits/manager-lin-001.png",
"roles": [
{"scope": "tlcoej", "role": "manager", "unit": "merchant"}
]
}
]
}
驗收結果
- 主管帳號
0dab2cd6-702a-4e94-876d-4a91c514a76e仍存在。 - roles 不再包含
merchant/tkfv5t/manager。 merchant/tlcoej/manager完整保留。
關鍵提醒
每個 role item 都是一筆權限變更,不是要送回的完整角色快照。移除時只提供 oldRole;同一人若仍有其他 Organization、Merchant 或 Squad scope,不要一併移除。