From c1bcd0ce45734f63ab85f8dedef1d9d4a412f451 Mon Sep 17 00:00:00 2001 From: pycook Date: Fri, 29 Mar 2024 13:13:38 +0800 Subject: [PATCH] fix(acl): del resource --- cmdb-api/api/lib/perm/acl/acl.py | 4 ++-- cmdb-api/api/lib/perm/acl/resource.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cmdb-api/api/lib/perm/acl/acl.py b/cmdb-api/api/lib/perm/acl/acl.py index 16cc283..85bf1e9 100644 --- a/cmdb-api/api/lib/perm/acl/acl.py +++ b/cmdb-api/api/lib/perm/acl/acl.py @@ -148,10 +148,10 @@ class ACLManager(object): if group: PermissionCRUD.revoke(rid, permissions, group_id=group.id, rebuild=rebuild) - def del_resource(self, name, resource_type_name=None): + def del_resource(self, name, resource_type_name=None, rebuild=True): resource = self._get_resource(name, resource_type_name) if resource: - return ResourceCRUD.delete(resource.id) + return ResourceCRUD.delete(resource.id, rebuild=rebuild) def has_permission(self, resource_name, resource_type, perm, resource_id=None): if is_app_admin(self.app_id): diff --git a/cmdb-api/api/lib/perm/acl/resource.py b/cmdb-api/api/lib/perm/acl/resource.py index 7c03e63..8b1135a 100644 --- a/cmdb-api/api/lib/perm/acl/resource.py +++ b/cmdb-api/api/lib/perm/acl/resource.py @@ -309,7 +309,7 @@ class ResourceCRUD(object): return resource @staticmethod - def delete(_id): + def delete(_id, rebuild=True): resource = Resource.get_by_id(_id) or abort(404, ErrFormat.resource_not_found.format("id={}".format(_id))) origin = resource.to_dict() @@ -322,8 +322,9 @@ class ResourceCRUD(object): i.soft_delete() rebuilds.append((i.rid, i.app_id)) - for rid, app_id in set(rebuilds): - role_rebuild.apply_async(args=(rid, app_id), queue=ACL_QUEUE) + if rebuild: + for rid, app_id in set(rebuilds): + role_rebuild.apply_async(args=(rid, app_id), queue=ACL_QUEUE) AuditCRUD.add_resource_log(resource.app_id, AuditOperateType.delete, AuditScope.resource, resource.id, origin, {}, {})