abs-auth-rbac-core 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -275,46 +275,32 @@ class RBACService:
275
275
  if not session.is_active:
276
276
  session.begin()
277
277
 
278
- role = self.get_role(role_uuid,session)
278
+ # Get role with permissions eagerly loaded
279
+ role = (
280
+ session.query(Role)
281
+ .options(joinedload(Role.permissions))
282
+ .filter(Role.uuid == role_uuid)
283
+ .first()
284
+ )
285
+ if not role:
286
+ raise NotFoundError(detail="Requested role does not exist")
279
287
 
280
288
  if exception_roles and len(exception_roles) > 0 and role.name in exception_roles:
281
289
  raise PermissionDeniedError(detail="You are not allowed to delete the requested role.")
282
-
283
- # Get role name for Casbin policy removal
284
- role_name = role.name
285
-
286
- # Delete role permissions
287
- role_permissions = (
288
- session.query(RolePermission)
289
- .filter(RolePermission.role_uuid == role_uuid)
290
- .all()
291
- )
292
-
293
- # Remove Casbin policies for each permission
294
- remove_policies =[]
295
- for role_permission in role_permissions:
296
- permission = (
297
- session.query(Permission)
298
- .filter(Permission.uuid == role_permission.permission_uuid)
299
- .first()
300
- )
301
- if permission:
302
- remove_policies.append(
303
- (role_name, permission.resource, permission.action, permission.module)
304
- )
305
290
 
306
- self.enforcer.remove_policies(remove_policies)
307
- self.enforcer.save_policy()
291
+ # Collect all policies to remove from the eagerly loaded permissions
292
+ remove_policies = [
293
+ [role.name, permission.resource, permission.action, permission.module]
294
+ for permission in role.permissions
295
+ ]
308
296
 
309
- # Delete role permissions
310
- session.query(RolePermission).filter(
311
- RolePermission.role_uuid == role_uuid
312
- ).delete()
297
+ # Remove all policies at once
298
+ if remove_policies:
313
299
 
314
- # Delete user role assignments
315
- session.query(UserRole).filter(UserRole.role_uuid == role_uuid).delete()
300
+ self.enforcer.remove_policies(remove_policies)
301
+ self.enforcer.save_policy()
316
302
 
317
- # Delete role
303
+ # Delete role (cascade will handle role_permissions and user_roles)
318
304
  session.delete(role)
319
305
  session.commit()
320
306
 
@@ -363,6 +349,7 @@ class RBACService:
363
349
  "name": permission.name,
364
350
  "resource": permission.resource,
365
351
  "action": permission.action,
352
+ "module": permission.module
366
353
  }
367
354
  )
368
355
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: abs-auth-rbac-core
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: RBAC and Auth core utilities including JWT token management.
5
5
  License: MIT
6
6
  Author: AutoBridgeSystems
@@ -17,9 +17,9 @@ abs_auth_rbac_core/rbac/__init__.py,sha256=oYjtpmfrkEbwWCBAWuRoU1fM4fCpBxkF_lwQr
17
17
  abs_auth_rbac_core/rbac/database.py,sha256=4lxs3gDIMq4pnor8oHN51UImp9Ad-6_HiIdPiLI-LGc,1475
18
18
  abs_auth_rbac_core/rbac/decorator.py,sha256=y1TJqVQLWJeMqj7PxYqlAQZ5sOj1hZv9AvChGspl8A0,1794
19
19
  abs_auth_rbac_core/rbac/policy.conf,sha256=wghhhKxgZH0rPhh1QFrIpq9nevJT3s7OxxvXiU3zzuI,305
20
- abs_auth_rbac_core/rbac/service.py,sha256=c7n7PIhs5EDPVvjjPc3gsgTFej8WFlmWuYBQiptJNY8,25645
20
+ abs_auth_rbac_core/rbac/service.py,sha256=C0LTqnyecePrLSh2bAAhO9xcwZ_UAfi4CREczgcQNWc,25206
21
21
  abs_auth_rbac_core/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  abs_auth_rbac_core/util/permission_constants.py,sha256=JFavEKkAJ5mtltttCwRTTtpRlu_mJiVPB_MwsP-bIAg,65337
23
- abs_auth_rbac_core-0.1.0.dist-info/METADATA,sha256=xnNkKtEVVrL39TehlfrKK4CLn_1AVia6BBAGITHrws8,6586
24
- abs_auth_rbac_core-0.1.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
25
- abs_auth_rbac_core-0.1.0.dist-info/RECORD,,
23
+ abs_auth_rbac_core-0.1.1.dist-info/METADATA,sha256=-rvnH3oBo96pOgFsJ-KJkQZz_2lO5mRAvBQNFU_dSPw,6586
24
+ abs_auth_rbac_core-0.1.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
25
+ abs_auth_rbac_core-0.1.1.dist-info/RECORD,,