Skip to content

Commit e910a47

Browse files
author
v_ltaoli
committed
fix(backend): 优化用户管理 TencentBlueKing#16093
# Reviewed, transaction id: 74028
1 parent 5d9abd0 commit e910a47

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

dbm-ui/backend/components/base.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,15 +417,20 @@ def _get_cached_admin_username(self):
417417
"""
418418
获取缓存的租户管理员用户名
419419
"""
420+
if not env.ENABLE_MULTI_TENANT_MODE:
421+
return env.DEFAULT_USERNAME
422+
420423
login_name = "bk_admin"
421424
cache_key = f"dbm:tenant_admin_username:{env.BK_TENANT_ID}:{login_name}"
422425
bk_username = cache.get(cache_key, "")
423426
if not bk_username:
424427
try:
425428
from backend.components.usermanage.client import UserManagerApi
426429

427-
params = {"lookup_field": "login_name", "lookups": login_name, "bk_username": "bk_admin"}
428-
data = UserManagerApi.batch_lookup_virtual_user(params, use_admin=False, use_param_user=True)
430+
params = {"lookup_field": "login_name", "lookups": login_name}
431+
# 接口返回不规范(无result/code字段),使用raw=True绕过DataAPI的统一校验
432+
res = UserManagerApi.batch_lookup_virtual_user(params, use_admin=False, use_param_user=True, raw=True)
433+
data = res.get("data")
429434
if isinstance(data, list) and data:
430435
bk_username = data[0].get("bk_username") or data[0].get("username")
431436
elif isinstance(data, dict) and data:
@@ -448,6 +453,7 @@ def _set_session_headers(self, session, local_request, headers: Dict, params: Di
448453
@param params: 请求参数
449454
"""
450455
session.headers.update(headers)
456+
bk_token = session.headers.get("bk_token")
451457
session.headers.update(
452458
{
453459
"X-Bkapi-Request-Id": self.request_id,
@@ -462,6 +468,7 @@ def _set_session_headers(self, session, local_request, headers: Dict, params: Di
462468
"bk_app_code": params.pop("bk_app_code", env.APP_CODE),
463469
"bk_app_secret": params.pop("bk_app_secret", env.SECRET_KEY),
464470
"bk_username": params.get("bk_username", "Anonymous"),
471+
"bk_token": bk_token,
465472
}
466473
if use_admin:
467474
# 使用管理员/平台身份调用接口

dbm-ui/backend/components/usermanage/client.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,16 @@ class _UserManageApi(BaseApi):
2020
BASE = USER_MANAGE_APIGW_DOMAIN
2121

2222
def __init__(self):
23+
is_esb = self.is_esb()
2324
self.list_users = self.generate_data_api(
2425
method="GET",
25-
url="api/v3/open/tenant/users/",
26+
url="list_users/" if is_esb else "api/v3/open/tenant/users/",
2627
description=_("获取所有用户"),
2728
cache_time=300,
2829
)
2930
self.retrieve_user = self.generate_data_api(
3031
method="GET",
31-
url="api/v3/open/tenant/users/{bk_username}/",
32+
url="retrieve_user/" if is_esb else "api/v3/open/tenant/users/{bk_username}/",
3233
description=_("获取单个用户"),
3334
)
3435
self.batch_lookup_virtual_user = self.generate_data_api(

dbm-ui/backend/iam_app/handlers/permission.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def __init__(self, username: str = "", request=None):
6767
@classmethod
6868
def get_iam_client(cls):
6969
tenant_id = getattr(env, "BK_TENANT_ID", "")
70-
if settings.BK_IAM_SKIP:
70+
if env.BK_IAM_SKIP:
7171
return DummyIAM(env.APP_CODE, env.SECRET_KEY, env.BK_IAM_APIGATEWAY, tenant_id)
7272
return IAM(env.APP_CODE, env.SECRET_KEY, env.BK_IAM_APIGATEWAY, tenant_id)
7373

0 commit comments

Comments
 (0)