abs-auth-rbac-core 0.1.5__py3-none-any.whl → 0.1.7__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.
Potentially problematic release.
This version of abs-auth-rbac-core might be problematic. Click here for more details.
- abs_auth_rbac_core/models/__init__.py +2 -1
- abs_auth_rbac_core/models/permissions.py +6 -0
- abs_auth_rbac_core/models/user.py +7 -1
- abs_auth_rbac_core/models/user_permission.py +15 -0
- abs_auth_rbac_core/rbac/service.py +188 -22
- abs_auth_rbac_core/schema/__init__.py +1 -0
- abs_auth_rbac_core/schema/permission.py +9 -0
- abs_auth_rbac_core/util/permission_constants.py +144 -1
- {abs_auth_rbac_core-0.1.5.dist-info → abs_auth_rbac_core-0.1.7.dist-info}/METADATA +2 -1
- {abs_auth_rbac_core-0.1.5.dist-info → abs_auth_rbac_core-0.1.7.dist-info}/RECORD +11 -8
- {abs_auth_rbac_core-0.1.5.dist-info → abs_auth_rbac_core-0.1.7.dist-info}/WHEEL +0 -0
|
@@ -3,5 +3,6 @@ from .roles import Role
|
|
|
3
3
|
from .user_role import UserRole
|
|
4
4
|
from .user import Users
|
|
5
5
|
from .role_permission import RolePermission
|
|
6
|
+
from .user_permission import UserPermission
|
|
6
7
|
|
|
7
|
-
__all__ = ["Permission", "Role", "UserRole", "Users","RolePermission"]
|
|
8
|
+
__all__ = ["Permission", "Role", "UserRole", "Users","RolePermission","UserPermission"]
|
|
@@ -24,3 +24,9 @@ class Permission(RBACBaseModel):
|
|
|
24
24
|
roles = relationship(
|
|
25
25
|
"Role", secondary="gov_role_permissions", back_populates="permissions"
|
|
26
26
|
)
|
|
27
|
+
|
|
28
|
+
user_permissions = relationship(
|
|
29
|
+
"UserPermission",
|
|
30
|
+
back_populates="permission",
|
|
31
|
+
cascade="all, delete-orphan"
|
|
32
|
+
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from sqlalchemy import Column, ForeignKey, String
|
|
2
|
+
from sqlalchemy.orm import relationship
|
|
3
|
+
from abs_auth_rbac_core.models.base_model import BaseModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class UserPermission(BaseModel):
|
|
7
|
+
"""Association model between users and permissions"""
|
|
8
|
+
|
|
9
|
+
__tablename__ = "gov_user_permissions"
|
|
10
|
+
|
|
11
|
+
user_uuid = Column(String(36), ForeignKey("gov_users.uuid"), index=True)
|
|
12
|
+
permission_uuid = Column(String(36), ForeignKey("gov_permissions.uuid"), index=True)
|
|
13
|
+
|
|
14
|
+
user = relationship("Users", back_populates="user_permissions")
|
|
15
|
+
permission = relationship("Permission", back_populates="user_permissions")
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
from typing import List, Optional, Callable,Any
|
|
1
|
+
from typing import List, Optional, Callable,Any,Tuple
|
|
2
2
|
import os
|
|
3
3
|
import casbin
|
|
4
4
|
from casbin_sqlalchemy_adapter import Adapter
|
|
5
5
|
from sqlalchemy import and_, select
|
|
6
6
|
from sqlalchemy.orm import Session, joinedload
|
|
7
|
-
|
|
7
|
+
from ..schema import CreatePermissionSchema
|
|
8
8
|
from ..models import (
|
|
9
9
|
Role,
|
|
10
10
|
RolePermission,
|
|
11
11
|
UserRole,
|
|
12
12
|
Users,
|
|
13
|
-
Permission
|
|
13
|
+
Permission,
|
|
14
|
+
UserPermission
|
|
14
15
|
)
|
|
15
16
|
|
|
16
17
|
from abs_exception_core.exceptions import (
|
|
@@ -52,8 +53,151 @@ class RBACService:
|
|
|
52
53
|
)
|
|
53
54
|
# Load policies
|
|
54
55
|
self.enforcer.load_policy()
|
|
56
|
+
|
|
57
|
+
def add_policy(self,role:str,resource:str,action:str,module:str):
|
|
58
|
+
"""
|
|
59
|
+
Add a policy to the casbin enforcer
|
|
60
|
+
"""
|
|
61
|
+
self.enforcer.add_policy(role,resource,action,module)
|
|
62
|
+
self.enforcer.save_policy()
|
|
63
|
+
|
|
64
|
+
def remove_policy(self,role:str,resource:str,action:str,module:str):
|
|
65
|
+
"""
|
|
66
|
+
Remove a policy from the casbin enforcer
|
|
67
|
+
"""
|
|
68
|
+
self.enforcer.remove_policy(role,resource,action,module)
|
|
69
|
+
self.enforcer.save_policy()
|
|
70
|
+
|
|
71
|
+
def add_policies(self,policies:List[Tuple[str,str,str,str]]):
|
|
72
|
+
"""
|
|
73
|
+
Add a list of policies to the casbin enforcer
|
|
74
|
+
"""
|
|
75
|
+
self.enforcer.add_policies(policies)
|
|
76
|
+
self.enforcer.save_policy()
|
|
77
|
+
|
|
78
|
+
def remove_policies(self,policies:List[List[str]]):
|
|
79
|
+
"""
|
|
80
|
+
Remove a list of policies from the casbin enforcer
|
|
81
|
+
"""
|
|
82
|
+
self.enforcer.remove_policies(policies)
|
|
83
|
+
self.enforcer.save_policy()
|
|
84
|
+
|
|
85
|
+
def enforce_policy(self,role:str,resource:str,action:str,module:str):
|
|
86
|
+
"""
|
|
87
|
+
Enforce a policy
|
|
88
|
+
"""
|
|
89
|
+
return self.enforcer.enforce(role,resource,action,module)
|
|
90
|
+
|
|
91
|
+
def remove_filter_policy(self,index:int,value:str):
|
|
92
|
+
"""
|
|
93
|
+
Remove a policy by filtering the policy
|
|
94
|
+
Args:
|
|
95
|
+
index: The index of the policy to remove
|
|
96
|
+
value: The value of the policy to remove
|
|
97
|
+
"""
|
|
98
|
+
self.enforcer.remove_filtered_policy(index,value)
|
|
99
|
+
self.enforcer.save_policy()
|
|
100
|
+
|
|
101
|
+
async def bulk_create_permissions(self,permissions:List[CreatePermissionSchema]):
|
|
102
|
+
"""
|
|
103
|
+
Bulk create permissions for user
|
|
104
|
+
"""
|
|
105
|
+
with self.db() as session:
|
|
106
|
+
try:
|
|
107
|
+
permission_objs = [Permission(**permission.model_dump()) for permission in permissions]
|
|
108
|
+
session.bulk_save_objects(permission_objs)
|
|
109
|
+
session.commit()
|
|
110
|
+
return permission_objs
|
|
111
|
+
except Exception as e:
|
|
112
|
+
raise e
|
|
55
113
|
|
|
114
|
+
async def get_permissions_by_condition(self, condition: dict, use_filter_by: bool = True):
|
|
115
|
+
"""
|
|
116
|
+
Get permission(s) based on a condition dict.
|
|
117
|
+
If use_filter_by is True, assumes all conditions are `==`.
|
|
118
|
+
"""
|
|
119
|
+
with self.db() as session:
|
|
120
|
+
try:
|
|
121
|
+
query = session.query(Permission)
|
|
122
|
+
if use_filter_by:
|
|
123
|
+
query = query.filter_by(**condition)
|
|
124
|
+
else:
|
|
125
|
+
filters = [getattr(Permission, k) == v for k, v in condition.items()]
|
|
126
|
+
query = query.filter(*filters)
|
|
127
|
+
return query.all()
|
|
128
|
+
except Exception as e:
|
|
129
|
+
raise e
|
|
130
|
+
|
|
131
|
+
async def delete_permission_by_uuids(self,permission_uuids:List[str]):
|
|
132
|
+
"""
|
|
133
|
+
Delete a permission by uuids
|
|
134
|
+
"""
|
|
135
|
+
with self.db() as session:
|
|
136
|
+
try:
|
|
137
|
+
permissions = session.query(Permission).filter(Permission.uuid.in_(permission_uuids))
|
|
138
|
+
for permission in permissions:
|
|
139
|
+
self.enforcer.remove_filtered_policy(1,permission.resource)
|
|
140
|
+
self.enforcer.save_policy()
|
|
141
|
+
|
|
142
|
+
permissions.delete(synchronize_session=False)
|
|
143
|
+
session.commit()
|
|
144
|
+
return True
|
|
145
|
+
except Exception as e:
|
|
146
|
+
raise e
|
|
147
|
+
|
|
148
|
+
def assign_permissions_to_user(self,user_uuid:str,permission_uuids:List[str]):
|
|
149
|
+
"""
|
|
150
|
+
Assign permissions to a user
|
|
151
|
+
"""
|
|
152
|
+
with self.db() as session:
|
|
153
|
+
current_permissions = session.query(UserPermission).filter(UserPermission.user_uuid==user_uuid).all()
|
|
154
|
+
current_permission_uuids = [permission.permission_uuid for permission in current_permissions]
|
|
155
|
+
remove_permissions = set(current_permission_uuids) - set(permission_uuids)
|
|
156
|
+
add_permissions = set(permission_uuids) - set(current_permission_uuids)
|
|
157
|
+
if remove_permissions:
|
|
158
|
+
self.revoke_user_permissions(user_uuid,list(remove_permissions))
|
|
159
|
+
if add_permissions:
|
|
160
|
+
self.attach_permissions_to_user(user_uuid,list(add_permissions))
|
|
161
|
+
return True
|
|
56
162
|
|
|
163
|
+
def attach_permissions_to_user(self, user_uuid: str, permission_uuids: List[str]):
|
|
164
|
+
with self.db() as session:
|
|
165
|
+
user_permissions = [
|
|
166
|
+
UserPermission(user_uuid=user_uuid, permission_uuid=permission_uuid)
|
|
167
|
+
for permission_uuid in permission_uuids
|
|
168
|
+
]
|
|
169
|
+
session.bulk_save_objects(user_permissions)
|
|
170
|
+
session.commit()
|
|
171
|
+
|
|
172
|
+
permissions = session.query(Permission).filter(Permission.uuid.in_(permission_uuids)).all()
|
|
173
|
+
policies = [
|
|
174
|
+
[f"user:{user_uuid}", permission.resource, permission.action, permission.module]
|
|
175
|
+
for permission in permissions
|
|
176
|
+
]
|
|
177
|
+
self.enforcer.add_policies(policies)
|
|
178
|
+
self.enforcer.save_policy()
|
|
179
|
+
return user_permissions
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def revoke_user_permissions(self, user_uuid: str, permission_uuids: List[str]):
|
|
183
|
+
with self.db() as session:
|
|
184
|
+
user_permissions = session.query(UserPermission).filter(
|
|
185
|
+
UserPermission.user_uuid == user_uuid,
|
|
186
|
+
UserPermission.permission_uuid.in_(permission_uuids)
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
permissions = session.query(Permission).filter(Permission.uuid.in_(permission_uuids)).all()
|
|
190
|
+
policies = [
|
|
191
|
+
[f"user:{user_uuid}", permission.resource, permission.action, permission.module]
|
|
192
|
+
for permission in permissions
|
|
193
|
+
]
|
|
194
|
+
self.enforcer.remove_policies(policies)
|
|
195
|
+
self.enforcer.save_policy()
|
|
196
|
+
|
|
197
|
+
user_permissions.delete(synchronize_session=False)
|
|
198
|
+
session.commit()
|
|
199
|
+
return True
|
|
200
|
+
|
|
57
201
|
def list_roles(self) -> Any:
|
|
58
202
|
"""
|
|
59
203
|
Get the list of all roles
|
|
@@ -136,7 +280,7 @@ class RBACService:
|
|
|
136
280
|
|
|
137
281
|
# Batch add Casbin policies
|
|
138
282
|
policies = [
|
|
139
|
-
|
|
283
|
+
[role.uuid, permission.resource, permission.action, permission.module]
|
|
140
284
|
for permission in existing_permissions
|
|
141
285
|
]
|
|
142
286
|
self.enforcer.add_policies(policies)
|
|
@@ -213,13 +357,11 @@ class RBACService:
|
|
|
213
357
|
existing_permissions = role.permissions
|
|
214
358
|
|
|
215
359
|
# Remove Casbin policies for existing permissions
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
existing_permission.module
|
|
222
|
-
)
|
|
360
|
+
remove_policies = [
|
|
361
|
+
[role_uuid, existing_permission.resource, existing_permission.action, existing_permission.module]
|
|
362
|
+
for existing_permission in existing_permissions
|
|
363
|
+
]
|
|
364
|
+
self.enforcer.remove_policies(remove_policies)
|
|
223
365
|
self.enforcer.save_policy()
|
|
224
366
|
|
|
225
367
|
# Delete existing role permissions
|
|
@@ -250,11 +392,11 @@ class RBACService:
|
|
|
250
392
|
session.bulk_insert_mappings(RolePermission, role_permissions)
|
|
251
393
|
|
|
252
394
|
# Add Casbin policies
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
395
|
+
policies = [
|
|
396
|
+
[role_uuid, permission.resource, permission.action, permission.module]
|
|
397
|
+
for permission in permissions_objs
|
|
398
|
+
]
|
|
399
|
+
self.enforcer.add_policies(policies)
|
|
258
400
|
self.enforcer.save_policy()
|
|
259
401
|
|
|
260
402
|
session.commit()
|
|
@@ -290,7 +432,7 @@ class RBACService:
|
|
|
290
432
|
|
|
291
433
|
# Collect all policies to remove from the eagerly loaded permissions
|
|
292
434
|
remove_policies = [
|
|
293
|
-
[role.
|
|
435
|
+
[role.uuid, permission.resource, permission.action, permission.module]
|
|
294
436
|
for permission in role.permissions
|
|
295
437
|
]
|
|
296
438
|
|
|
@@ -317,6 +459,30 @@ class RBACService:
|
|
|
317
459
|
with self.db() as session:
|
|
318
460
|
return session.query(Permission).filter(Permission.module == module).all()
|
|
319
461
|
|
|
462
|
+
def get_user_only_permissions(self, user_uuid: str) -> List[Any]:
|
|
463
|
+
"""Get all allowed permissions for a user"""
|
|
464
|
+
with self.db() as session:
|
|
465
|
+
user_permissions = (
|
|
466
|
+
session.query(UserPermission)
|
|
467
|
+
.filter(UserPermission.user_uuid == user_uuid)
|
|
468
|
+
.options(joinedload(UserPermission.permission))
|
|
469
|
+
.all()
|
|
470
|
+
)
|
|
471
|
+
result = []
|
|
472
|
+
for user_permission in user_permissions:
|
|
473
|
+
result.append(
|
|
474
|
+
{
|
|
475
|
+
"permission_id": user_permission.permission.id,
|
|
476
|
+
"created_at": user_permission.permission.created_at,
|
|
477
|
+
"updated_at": user_permission.permission.updated_at,
|
|
478
|
+
"name": user_permission.permission.name,
|
|
479
|
+
"resource": user_permission.permission.resource,
|
|
480
|
+
"action": user_permission.permission.action,
|
|
481
|
+
"module": user_permission.permission.module
|
|
482
|
+
}
|
|
483
|
+
)
|
|
484
|
+
return result
|
|
485
|
+
|
|
320
486
|
def get_user_permissions(self, user_uuid: str) -> List[Any]:
|
|
321
487
|
"""Get all allowed permissions for a user"""
|
|
322
488
|
with self.db() as session:
|
|
@@ -397,7 +563,7 @@ class RBACService:
|
|
|
397
563
|
|
|
398
564
|
# Remove Casbin policies
|
|
399
565
|
policies_to_remove = [
|
|
400
|
-
|
|
566
|
+
[role.uuid, permission.resource, permission.action, permission.module]
|
|
401
567
|
for permission in permissions_to_revoke
|
|
402
568
|
]
|
|
403
569
|
self.enforcer.remove_policies(policies_to_remove)
|
|
@@ -465,7 +631,7 @@ class RBACService:
|
|
|
465
631
|
|
|
466
632
|
# Add Casbin policies
|
|
467
633
|
policies_to_add = [
|
|
468
|
-
|
|
634
|
+
[role.uuid, permission.resource, permission.action, permission.module]
|
|
469
635
|
for permission in new_permissions
|
|
470
636
|
]
|
|
471
637
|
self.enforcer.add_policies(policies_to_add)
|
|
@@ -648,15 +814,15 @@ class RBACService:
|
|
|
648
814
|
)
|
|
649
815
|
for role in roles:
|
|
650
816
|
# Try with module first
|
|
651
|
-
if self.enforcer.enforce(role.
|
|
817
|
+
if self.enforcer.enforce(role.uuid, resource, action, module):
|
|
652
818
|
return True
|
|
653
819
|
return False
|
|
654
820
|
|
|
655
821
|
def check_permission_by_role(
|
|
656
|
-
self,
|
|
822
|
+
self, role_uuid: str, resource: str, action: str, module: str
|
|
657
823
|
) -> bool:
|
|
658
824
|
# Try with module first
|
|
659
|
-
if self.enforcer.enforce(
|
|
825
|
+
if self.enforcer.enforce(role_uuid, resource, action, module):
|
|
660
826
|
return True
|
|
661
827
|
return False
|
|
662
828
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .permission import CreatePermissionSchema
|
|
@@ -110,6 +110,7 @@ class PermissionModule(str, Enum):
|
|
|
110
110
|
LEGAL_ASSISTANT = "LEGAL_ASSISTANT"
|
|
111
111
|
REPORTING = "REPORTING"
|
|
112
112
|
USER_MANAGEMENT = "USER_MANAGEMENT"
|
|
113
|
+
AI_EMS="AI_EMS"
|
|
113
114
|
|
|
114
115
|
|
|
115
116
|
class PermissionResource(str, Enum):
|
|
@@ -168,7 +169,11 @@ class PermissionResource(str, Enum):
|
|
|
168
169
|
EXTERNAL_SYSTEM = "EXTERNAL_SYSTEM"
|
|
169
170
|
USER_MANAGEMENT = "USER_MANAGEMENT"
|
|
170
171
|
ROLE_MANAGEMENT = "ROLE_MANAGEMENT"
|
|
171
|
-
|
|
172
|
+
FACILITIES = "FACILITIES"
|
|
173
|
+
PATIENT_RECORDS = "PATIENT_RECORDS"
|
|
174
|
+
CALLS_AND_SMS = "CALLS_AND_SMS"
|
|
175
|
+
ANALYTICS = "ANALYTICS"
|
|
176
|
+
HELP = "HELP"
|
|
172
177
|
|
|
173
178
|
|
|
174
179
|
class PermissionData(NamedTuple):
|
|
@@ -180,6 +185,144 @@ class PermissionData(NamedTuple):
|
|
|
180
185
|
|
|
181
186
|
|
|
182
187
|
class PermissionConstants:
|
|
188
|
+
# AI EMS Permissions
|
|
189
|
+
AI_EMS_FACILITIES_CREATE = PermissionData(
|
|
190
|
+
name="Create AI EMS",
|
|
191
|
+
description="Permission to create AI EMS",
|
|
192
|
+
module=PermissionModule.AI_EMS,
|
|
193
|
+
resource=PermissionResource.FACILITIES,
|
|
194
|
+
action=PermissionAction.CREATE,
|
|
195
|
+
)
|
|
196
|
+
AI_EMS_FACILITIES_VIEW = PermissionData(
|
|
197
|
+
name="View AI EMS",
|
|
198
|
+
description="Permission to view AI EMS",
|
|
199
|
+
module=PermissionModule.AI_EMS,
|
|
200
|
+
resource=PermissionResource.FACILITIES,
|
|
201
|
+
action=PermissionAction.VIEW,
|
|
202
|
+
)
|
|
203
|
+
AI_EMS_FACILITIES_EDIT = PermissionData(
|
|
204
|
+
name="Edit AI EMS",
|
|
205
|
+
description="Permission to edit AI EMS",
|
|
206
|
+
module=PermissionModule.AI_EMS,
|
|
207
|
+
resource=PermissionResource.FACILITIES,
|
|
208
|
+
action=PermissionAction.EDIT,
|
|
209
|
+
)
|
|
210
|
+
AI_EMS_FACILITIES_DELETE = PermissionData(
|
|
211
|
+
name="Delete AI EMS",
|
|
212
|
+
description="Permission to delete AI EMS",
|
|
213
|
+
module=PermissionModule.AI_EMS,
|
|
214
|
+
resource=PermissionResource.FACILITIES,
|
|
215
|
+
action=PermissionAction.DELETE,
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
AI_EMS_PATIENT_RECORDS_CREATE = PermissionData(
|
|
219
|
+
name="Create AI EMS Patient Records",
|
|
220
|
+
description="Permission to create AI EMS patient records",
|
|
221
|
+
module=PermissionModule.AI_EMS,
|
|
222
|
+
resource=PermissionResource.PATIENT_RECORDS,
|
|
223
|
+
action=PermissionAction.CREATE,
|
|
224
|
+
)
|
|
225
|
+
AI_EMS_PATIENT_RECORDS_VIEW = PermissionData(
|
|
226
|
+
name="View AI EMS Patient Records",
|
|
227
|
+
description="Permission to view AI EMS patient records",
|
|
228
|
+
module=PermissionModule.AI_EMS,
|
|
229
|
+
resource=PermissionResource.PATIENT_RECORDS,
|
|
230
|
+
action=PermissionAction.VIEW,
|
|
231
|
+
)
|
|
232
|
+
AI_EMS_PATIENT_RECORDS_EDIT = PermissionData(
|
|
233
|
+
name="Edit AI EMS Patient Records",
|
|
234
|
+
description="Permission to edit AI EMS patient records",
|
|
235
|
+
module=PermissionModule.AI_EMS,
|
|
236
|
+
resource=PermissionResource.PATIENT_RECORDS,
|
|
237
|
+
action=PermissionAction.EDIT,
|
|
238
|
+
)
|
|
239
|
+
AI_EMS_PATIENT_RECORDS_DELETE = PermissionData(
|
|
240
|
+
name="Delete AI EMS Patient Records",
|
|
241
|
+
description="Permission to delete AI EMS patient records",
|
|
242
|
+
module=PermissionModule.AI_EMS,
|
|
243
|
+
resource=PermissionResource.PATIENT_RECORDS,
|
|
244
|
+
action=PermissionAction.DELETE,
|
|
245
|
+
)
|
|
246
|
+
AI_EMS_CALLS_AND_SMS_CREATE = PermissionData(
|
|
247
|
+
name="Create AI EMS Calls and SMS",
|
|
248
|
+
description="Permission to create AI EMS calls and SMS",
|
|
249
|
+
module=PermissionModule.AI_EMS,
|
|
250
|
+
resource=PermissionResource.CALLS_AND_SMS,
|
|
251
|
+
action=PermissionAction.CREATE,
|
|
252
|
+
)
|
|
253
|
+
AI_EMS_CALLS_AND_SMS_VIEW = PermissionData(
|
|
254
|
+
name="View AI EMS Calls and SMS",
|
|
255
|
+
description="Permission to view AI EMS calls and SMS",
|
|
256
|
+
module=PermissionModule.AI_EMS,
|
|
257
|
+
resource=PermissionResource.CALLS_AND_SMS,
|
|
258
|
+
action=PermissionAction.VIEW,
|
|
259
|
+
)
|
|
260
|
+
AI_EMS_CALLS_AND_SMS_EDIT = PermissionData(
|
|
261
|
+
name="Edit AI EMS Calls and SMS",
|
|
262
|
+
description="Permission to edit AI EMS calls and SMS",
|
|
263
|
+
module=PermissionModule.AI_EMS,
|
|
264
|
+
resource=PermissionResource.CALLS_AND_SMS,
|
|
265
|
+
action=PermissionAction.EDIT,
|
|
266
|
+
)
|
|
267
|
+
AI_EMS_CALLS_AND_SMS_DELETE = PermissionData(
|
|
268
|
+
name="Delete AI EMS Calls and SMS",
|
|
269
|
+
description="Permission to delete AI EMS calls and SMS",
|
|
270
|
+
module=PermissionModule.AI_EMS,
|
|
271
|
+
resource=PermissionResource.CALLS_AND_SMS,
|
|
272
|
+
action=PermissionAction.DELETE,
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
AI_EMS_ANALYTICS_VIEW = PermissionData(
|
|
276
|
+
name="View AI EMS Analytics",
|
|
277
|
+
description="Permission to view AI EMS analytics",
|
|
278
|
+
module=PermissionModule.AI_EMS,
|
|
279
|
+
resource=PermissionResource.ANALYTICS,
|
|
280
|
+
action=PermissionAction.VIEW,
|
|
281
|
+
)
|
|
282
|
+
AI_EMS_ANALYTICS_EDIT = PermissionData(
|
|
283
|
+
name="Edit AI EMS Analytics",
|
|
284
|
+
description="Permission to edit AI EMS analytics",
|
|
285
|
+
module=PermissionModule.AI_EMS,
|
|
286
|
+
resource=PermissionResource.ANALYTICS,
|
|
287
|
+
action=PermissionAction.EDIT,
|
|
288
|
+
)
|
|
289
|
+
AI_EMS_ANALYTICS_DELETE = PermissionData(
|
|
290
|
+
name="Delete AI EMS Analytics",
|
|
291
|
+
description="Permission to delete AI EMS analytics",
|
|
292
|
+
module=PermissionModule.AI_EMS,
|
|
293
|
+
resource=PermissionResource.ANALYTICS,
|
|
294
|
+
action=PermissionAction.DELETE,
|
|
295
|
+
)
|
|
296
|
+
|
|
297
|
+
AI_EMS_HELP_VIEW = PermissionData(
|
|
298
|
+
name="View AI EMS Help",
|
|
299
|
+
description="Permission to view AI EMS help",
|
|
300
|
+
module=PermissionModule.AI_EMS,
|
|
301
|
+
resource=PermissionResource.HELP,
|
|
302
|
+
action=PermissionAction.VIEW,
|
|
303
|
+
)
|
|
304
|
+
AI_EMS_HELP_EDIT = PermissionData(
|
|
305
|
+
name="Edit AI EMS Help",
|
|
306
|
+
description="Permission to edit AI EMS help",
|
|
307
|
+
module=PermissionModule.AI_EMS,
|
|
308
|
+
resource=PermissionResource.HELP,
|
|
309
|
+
action=PermissionAction.EDIT,
|
|
310
|
+
)
|
|
311
|
+
AI_EMS_HELP_DELETE = PermissionData(
|
|
312
|
+
name="Delete AI EMS Help",
|
|
313
|
+
description="Permission to delete AI EMS help",
|
|
314
|
+
module=PermissionModule.AI_EMS,
|
|
315
|
+
resource=PermissionResource.HELP,
|
|
316
|
+
action=PermissionAction.DELETE,
|
|
317
|
+
)
|
|
318
|
+
AI_EMS_HELP_CREATE = PermissionData(
|
|
319
|
+
name="Create AI EMS Help",
|
|
320
|
+
description="Permission to create AI EMS help",
|
|
321
|
+
module=PermissionModule.AI_EMS,
|
|
322
|
+
resource=PermissionResource.HELP,
|
|
323
|
+
action=PermissionAction.CREATE,
|
|
324
|
+
)
|
|
325
|
+
|
|
183
326
|
# Workforce Agent Permissions
|
|
184
327
|
WORKFORCE_AGENT_CREATE = PermissionData(
|
|
185
328
|
name="Create Workforce Agent",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: abs-auth-rbac-core
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: RBAC and Auth core utilities including JWT token management.
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: AutoBridgeSystems
|
|
@@ -14,6 +14,7 @@ Requires-Dist: casbin (>=1.41.0,<2.0.0)
|
|
|
14
14
|
Requires-Dist: casbin-sqlalchemy-adapter (>=1.4.0,<2.0.0)
|
|
15
15
|
Requires-Dist: fastapi[standard] (>=0.115.12,<0.116.0)
|
|
16
16
|
Requires-Dist: passlib (>=1.7.4,<2.0.0)
|
|
17
|
+
Requires-Dist: psycopg2-binary (>=2.9.10,<3.0.0)
|
|
17
18
|
Requires-Dist: pyjwt (>=2.10.1,<3.0.0)
|
|
18
19
|
Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0)
|
|
19
20
|
Description-Content-Type: text/markdown
|
|
@@ -3,22 +3,25 @@ abs_auth_rbac_core/auth/__init__.py,sha256=Pvetd98VD9jsok1F9e82yS9kLZMFqTpbN51hk
|
|
|
3
3
|
abs_auth_rbac_core/auth/auth_functions.py,sha256=fhfKRhtpE_J9MHu2jSsIA-cy77A3wCAQKbGGZeh4pe4,947
|
|
4
4
|
abs_auth_rbac_core/auth/jwt_functions.py,sha256=9vhjWrxXdE8fVQ4FGrPj9y6PoSEsaeFohPhgI-3hToI,4111
|
|
5
5
|
abs_auth_rbac_core/auth/middleware.py,sha256=Hn5EoDE2zEWXHXTgrSFgE85s0ivzFNTxYIqtgLBdtGE,1849
|
|
6
|
-
abs_auth_rbac_core/models/__init__.py,sha256=
|
|
6
|
+
abs_auth_rbac_core/models/__init__.py,sha256=9ImboxQ04XxRjd5o1RDBn465BOj3F2pahuVXF15NuqE,292
|
|
7
7
|
abs_auth_rbac_core/models/base_model.py,sha256=AaWObslm8sTetv4H1Ia_gPpi_75uF5z1o7Et9WAvstU,612
|
|
8
8
|
abs_auth_rbac_core/models/gov_casbin_rule.py,sha256=uWkzOgtG0_8CXR4YLBz_JINA8apcB1D4aWiCgSkuTCs,789
|
|
9
|
-
abs_auth_rbac_core/models/permissions.py,sha256=
|
|
9
|
+
abs_auth_rbac_core/models/permissions.py,sha256=op_6t3OKDGzQvroVhYgoM7g_umr7MD-ZABjk5HdTpB8,859
|
|
10
10
|
abs_auth_rbac_core/models/rbac_model.py,sha256=GbgMA-lJoU__xYP7wCw2FB9P1ftMzRAU2sWyGnmqnt4,323
|
|
11
11
|
abs_auth_rbac_core/models/role_permission.py,sha256=KQ7MGwFvHhXgWL73TGH_elfG0rTLj5Ct11EWi6ypNb8,414
|
|
12
12
|
abs_auth_rbac_core/models/roles.py,sha256=3g52YoCAnVdId4iaQa6Jz1NUTnaZTM_i_4oGF-FneA0,657
|
|
13
13
|
abs_auth_rbac_core/models/seeder/permission_seeder.py,sha256=j-aUy8uLHnUWpMmw1DqXq8yJcqWxQo-D5QjY1S-ifyA,3652
|
|
14
|
-
abs_auth_rbac_core/models/user.py,sha256=
|
|
14
|
+
abs_auth_rbac_core/models/user.py,sha256=rLsK-Qy4AUbnfGUchr9hOPmdzaNcZ8whZpL9V4LU-AI,990
|
|
15
|
+
abs_auth_rbac_core/models/user_permission.py,sha256=t1_VUSFyyZAfJK71liDkFkg51yCshCbuRMG9rxFyOro,600
|
|
15
16
|
abs_auth_rbac_core/models/user_role.py,sha256=20pqmtJPzlUrI9ulHGouk8XlFgrGG7I6ikctb8sMUGs,706
|
|
16
17
|
abs_auth_rbac_core/rbac/__init__.py,sha256=oYjtpmfrkEbwWCBAWuRoU1fM4fCpBxkF_lwQrelK1As,79
|
|
17
18
|
abs_auth_rbac_core/rbac/decorator.py,sha256=pEFAW0Nn2iE4KBctPhNOmO_VLeJFDX2V9v2LsCu6kHY,1824
|
|
18
19
|
abs_auth_rbac_core/rbac/policy.conf,sha256=wghhhKxgZH0rPhh1QFrIpq9nevJT3s7OxxvXiU3zzuI,305
|
|
19
|
-
abs_auth_rbac_core/rbac/service.py,sha256=
|
|
20
|
+
abs_auth_rbac_core/rbac/service.py,sha256=z5cQvLFhBAt22vdxRyaLAZ6wM2D72xmCgGLgwSMnIAU,32173
|
|
21
|
+
abs_auth_rbac_core/schema/__init__.py,sha256=v9xibJ8Wr9k0u6PEYNK0LCGUJD71SB5vxu9BZG0S7tM,46
|
|
22
|
+
abs_auth_rbac_core/schema/permission.py,sha256=XvxPU68FY0PFgkF4GR2bSrzNvFB8c8OgY_d0JOJvMc8,203
|
|
20
23
|
abs_auth_rbac_core/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
abs_auth_rbac_core/util/permission_constants.py,sha256=
|
|
22
|
-
abs_auth_rbac_core-0.1.
|
|
23
|
-
abs_auth_rbac_core-0.1.
|
|
24
|
-
abs_auth_rbac_core-0.1.
|
|
24
|
+
abs_auth_rbac_core/util/permission_constants.py,sha256=ZADzQ31HQgLPS8oJXMbuSbm-2M30BERPWZppgvvg8Yg,70785
|
|
25
|
+
abs_auth_rbac_core-0.1.7.dist-info/METADATA,sha256=jfpJhLF28rZ1xsED6xme3DZltN3wVN50LrIH14FS_Zc,6635
|
|
26
|
+
abs_auth_rbac_core-0.1.7.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
27
|
+
abs_auth_rbac_core-0.1.7.dist-info/RECORD,,
|
|
File without changes
|