From ef0115d34030eb496a1bc761b842e3bcd8f5598d Mon Sep 17 00:00:00 2001 From: wangxiaolei Date: Mon, 20 Jul 2026 20:59:29 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20when=20dataset=20permission=20is=20not?= =?UTF-8?q?=20all=20team,=20update=20rbac=20config=20to=E2=80=A6=20(#39227?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- api/controllers/console/datasets/datasets.py | 7 ++++++ .../service_api/dataset/dataset.py | 24 ++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/api/controllers/console/datasets/datasets.py b/api/controllers/console/datasets/datasets.py index 9599be7aeb8..2ec5a9fe103 100644 --- a/api/controllers/console/datasets/datasets.py +++ b/api/controllers/console/datasets/datasets.py @@ -607,6 +607,13 @@ class DatasetListApi(Resource): ReplaceMemberBindings(scope=RBACResourceWhitelistScope.ALL), ) initialize_created_app_rbac_access_task.delay(current_tenant_id, current_user.id, dataset_id=dataset.id) + else: + enterprise_rbac_service.RBACService.DatasetAccess.replace_whitelist( + current_tenant_id, + current_user.id, + dataset.id, + ReplaceMemberBindings(scope=RBACResourceWhitelistScope.SPECIFIC), + ) permission_keys_map = enterprise_rbac_service.RBACService.DatasetPermissions.batch_get( current_tenant_id, diff --git a/api/controllers/service_api/dataset/dataset.py b/api/controllers/service_api/dataset/dataset.py index 56762ca1720..8e5f3b60d87 100644 --- a/api/controllers/service_api/dataset/dataset.py +++ b/api/controllers/service_api/dataset/dataset.py @@ -531,14 +531,22 @@ class DatasetListApi(DatasetApiResource): except services.errors.dataset.DatasetNameDuplicateError: raise DatasetNameDuplicateError() - if payload.permission == DatasetPermissionEnum.ALL_TEAM and dify_config.RBAC_ENABLED: - RBACService.DatasetAccess.replace_whitelist( - tenant_id, - current_user.id, - dataset.id, - ReplaceMemberBindings(scope=RBACResourceWhitelistScope.ALL), - ) - initialize_created_app_rbac_access_task.delay(tenant_id, current_user.id, dataset_id=dataset.id) + if dify_config.RBAC_ENABLED: + if payload.permission == DatasetPermissionEnum.ALL_TEAM: + RBACService.DatasetAccess.replace_whitelist( + tenant_id, + current_user.id, + dataset.id, + ReplaceMemberBindings(scope=RBACResourceWhitelistScope.ALL), + ) + initialize_created_app_rbac_access_task.delay(tenant_id, current_user.id, dataset_id=dataset.id) + else: + RBACService.DatasetAccess.replace_whitelist( + tenant_id, + current_user.id, + dataset.id, + ReplaceMemberBindings(scope=RBACResourceWhitelistScope.SPECIFIC), + ) return _dump_service_dataset_detail(dataset, session=session), 200