# 租戶管理員-角色權限管理(Draft) [TOC] ## 租戶角色列表 ```url POST /tenant-role/list ``` Request | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | query | json | | 查詢條件 | | - status | bool | | 啟用狀態, true: 啟用, false: 停用, 未填則表示全部 | | - name | string | | 關鍵字,查詢角色名稱 | | - tenantId | string | | 租戶id | | pagination | json | | 分頁 | | - current | int | | 當前頁數 | | - pageSize | int | | 每頁結果數量,預設為10| | sorter | json | | 排序欄位, 預設是用更新時間降序排列 | | - field | string | | 排序欄位, 預設為updateTime, 可排序欄位:name, account, status, updateTime | | - order | string | | 升序或降序, 預設為desc| ```javascript { "query": { "name": "", "status": true, "tenantId": "" }, "pagination": { "current": 1, "pageSize": 10 }, "sorter": { "field": "updateTime", "order": "asc" } } ``` Response | 欄位 | 型態 | 說明 | |---|---|---| | id | string | 角色 id | | name | string | 角色名稱 | | tenantId | string | 租戶id | | functions | string | 已設定功能權限列表,以','分隔 | | menus | json | 角色功能權限列表 | | - id | string | menuId | | - name | string | 功能名稱 | | - i18n | string | i18n | | - menu | json array | 子功能json array | | - - id | string | menuId | | - - name | string | 功能名稱 | | - - i18n | string | i18n | | - - parentId | string | 父功能選單id | | - - read | bool | true 表示啟用 | | status | bool | 啟用狀態, true: 啟用, false: 停用 | | updateTime | timestamp | 最後更新時間 | ```javascript { "httpCode": 200, "result": { "data": [ { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "tenantId": "edf7f695-6d27-47c3-af9f-f57669bba45d", "name": "心臟科醫師", "functions": "CASE_OVERVIEW,CASE_CALENDAR,EDUCATION_LIST", "menus": { "EDUCATION_MANAGEMENT": { "id": "EDUCATION_MANAGEMENT", "name": "衛教資訊管理", "i18n": "MENU.EDUCATION_MANAGEMENT", "level": 0, "menu": [ { "id": "EDUCATION_LIST", "name": "衛教資訊列表", "i18n": "MENU.EDUCATION_LIST", "parentId": "EDUCATION_MANAGEMENT", "level": 1, "read": true } ] }, "SYSTEM_MANAGEMENT": { "id": "SYSTEM_MANAGEMENT", "name": "系統管理", "i18n": "MENU.SYSTEM_MANAGEMENT", "level": 0, "menu": [ { "id": "SYSTEM_DIVISION", "name": "科別管理", "i18n": "MENU.SYSTEM_DIVISION", "parentId": "SYSTEM_MANAGEMENT", "level": 1 }, { "id": "SYSTEM_DISEASE", "name": "疾病別管理", "i18n": "MENU.SYSTEM_DISEASE", "parentId": "SYSTEM_MANAGEMENT", "level": 1 }, { "id": "RESERVATION_ITEM", "name": "排程項目管理", "i18n": "MENU.RESERVATION_ITEM", "parentId": "SYSTEM_MANAGEMENT", "level": 1 } ] }, "CASE_MANAGEMENT": { "id": "CASE_MANAGEMENT", "name": "個案追蹤管理", "i18n": "MENU.CASE_MANAGEMENT", "level": 0, "menu": [ { "id": "CASE_CALENDAR", "name": "排程行事曆", "i18n": "MENU.CASE_CALENDAR", "parentId": "CASE_MANAGEMENT", "level": 1, "read": true }, { "id": "CASE_OVERVIEW", "name": "個案總覽", "i18n": "MENU.CASE_OVERVIEW", "parentId": "CASE_MANAGEMENT", "level": 1, "read": true }, { "id": "CASE_LIST", "name": "個案名單", "i18n": "MENU.CASE_LIST", "parentId": "CASE_MANAGEMENT", "level": 1 }, { "id": "CASE_ANNUAL_STATISTIC", "name": "指標分析", "i18n": "MENU.CASE_ANNUAL_STATISTIC", "parentId": "CASE_MANAGEMENT", "level": 1 }, { "id": "CASE_CARE", "name": "個案關懷", "i18n": "MENU.CASE_CARE", "parentId": "CASE_MANAGEMENT", "level": 1 }, { "id": "CASE_GIS", "name": "個案GIS", "i18n": "MENU.CASE_GIS", "parentId": "CASE_MANAGEMENT", "level": 1 } ] }, "ACCOUNT_MANAGEMENT": { "id": "ACCOUNT_MANAGEMENT", "name": "帳號管理", "i18n": "MENU.ACCOUNT_MANAGEMENT", "level": 0, "menu": [ { "id": "SYSTEM_USERS", "name": "帳號管理", "i18n": "MENU.SYSTEM_USERS", "parentId": "ACCOUNT_MANAGEMENT", "level": 1 }, { "id": "ROLE_MANAGEMENT", "name": "角色權限管理", "i18n": "MENU.ROLE_MANAGEMENT", "parentId": "ACCOUNT_MANAGEMENT", "level": 1 } ] }, "PLATFORM_MANAGEMENT": { "id": "PLATFORM_MANAGEMENT", "name": "平台管理", "i18n": "MENU.PLATFORM_MANAGEMENT", "level": 0, "menu": [ { "id": "TENANT_MANAGEMENT", "name": "租戶管理", "i18n": "MENU.TENANT_MANAGEMENT", "parentId": "PLATFORM_MANAGEMENT", "level": 1 }, { "id": "PURCHASE_SETTINGS", "name": "方案參數設定", "i18n": "MENU.PURCHASE_SETTINGS", "parentId": "PLATFORM_MANAGEMENT", "level": 1 }, { "id": "PURCHASE_MANAGEMENT", "name": "方案管理", "i18n": "MENU.PURCHASE_MANAGEMENT", "parentId": "PLATFORM_MANAGEMENT", "level": 1 } ] }, "INTELL_DIST_SERVICE": { "id": "INTELL_DIST_SERVICE", "name": "遠距智能服務", "i18n": "MENU.INTELL_DIST_SERVICE", "level": 0, "menu": [ { "id": "INTELL_DIST_CONSULT", "name": "諮詢服務", "i18n": "MENU.INTELL_DIST_CONSULT", "parentId": "INTELL_DIST_SERVICE", "level": 1 }, { "id": "INTELL_DIST_WOUND_PATIENT", "name": "傷口照顧管理", "i18n": "MENU.INTELL_DIST_WOUND_PATIENT", "parentId": "INTELL_DIST_SERVICE", "level": 1 }, { "id": "INTELL_DIST_HEALTH", "name": "個人健康管理", "i18n": "MENU.INTELL_DIST_HEALTH", "parentId": "INTELL_DIST_SERVICE", "level": 1 } ] } }, "status": true, "updateTime": 1610588709000 }, ... ] } } ``` ## 新增租戶角色 ```url POST /tenant-role/add ``` Request | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | name | string | Y | 姓名 | | tenantId | string | Y | 租戶id | ```javascript { "name": "心臟科醫師", "tenantId": "5253249c-edd1-4bd0-b63a-3826beb9b9b2" } ``` Response | 欄位 | 型態 | 說明 | |---|---|---| | id | string | 租戶角色 id | | name | string | 租戶角色名稱 | | tenantId | string | 租戶id | | status | bool | 啟用狀態, true: 啟用, false: 停用 | | updateTime | timestamp | 最後更新時間 | ```javascript //httpCode: 200 { "httpCode": 200, "result": { "data": { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "心臟科醫師", "tenantId": "5253249c-edd1-4bd0-b63a-3826beb9b9b2", "status": true, "updateTime": 1610588709000 } } } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.TENANT_ROLE_DUPLICATE", "httpCode": 422 } ``` ## 編輯租戶角色 ```url POST /tenant-role/update ``` Request | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | id | string | 租戶角色 id | | name | string | 租戶角色名稱 | | tenantId | string | 租戶id | | functions | string array | 功能權限設定array, 功能選單id | | status | bool | 啟用狀態, true: 啟用, false: 停用 | | updateTime | timestamp | 最後更新時間 | ```javascript { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "心臟科醫師", "tenantId": "5253249c-edd1-4bd0-b63a-3826beb9b9b2", "functions": [ "CASE_GIS", "INTELL_DIST_CONSULT", ], "status": true } ``` Response | 欄位 | 型態 | 說明 | |---|---|---| | id | string | 租戶角色 id | | name | string | 租戶角色名稱 | | tenantId | string | 租戶id | | status | bool | 啟用狀態, true: 啟用, false: 停用 | | updateTime | timestamp | 最後更新時間 | ```javascript //httpCode: 200 { "httpCode": 200, "result": { "data": { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "心臟科醫師", "tenantId": "5253249c-edd1-4bd0-b63a-3826beb9b9b2", "status": true, "updateTime": 1610588709000 } } } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.TENANT_ROLE_NAME_DUPLICATE", "httpCode": 422 } ``` ## 啟用停用租戶角色 ```url POST /tenant-role/status ``` Request | 欄位 | 型態 | 必填 | 說明 | |---|---|---|---| | id | string | Y | 租戶角色id | | status | bool | Y | 啟用狀態, true: 啟用, false: 停用 | ```javascript { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "status": true } ``` Response | 欄位 | 型態 | 說明 | |---|---|---| | id | string | 租戶角色 id | | name | string | 租戶角色名稱 | | tenantId | string | 租戶id | | status | bool | 啟用狀態, true: 啟用, false: 停用 | | updateTime | timestamp | 最後更新時間 | ```javascript //httpCode: 200 { "httpCode": 200, "result": { "data": { "id": "594bcf8d-a134-4efd-9366-392b8194e631", "name": "心臟科醫師", "tenantId": "5253249c-edd1-4bd0-b63a-3826beb9b9b2", "status": true, "updateTime": 1610588709000 } } } //httpCode: 422 { "errorMsg": "SERVICE_ERROR.TENANT_ROLE_DUPLICATE", "httpCode": 422 } ```