aiteamutils 0.2.91__py3-none-any.whl → 0.2.93__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.
- aiteamutils/base_service.py +19 -7
- aiteamutils/security.py +17 -4
- aiteamutils/version.py +1 -1
- {aiteamutils-0.2.91.dist-info → aiteamutils-0.2.93.dist-info}/METADATA +1 -1
- {aiteamutils-0.2.91.dist-info → aiteamutils-0.2.93.dist-info}/RECORD +6 -6
- {aiteamutils-0.2.91.dist-info → aiteamutils-0.2.93.dist-info}/WHEEL +0 -0
aiteamutils/base_service.py
CHANGED
@@ -44,9 +44,9 @@ class BaseService(Generic[ModelType]):
|
|
44
44
|
unique_check: List[Dict[str, Any]] | None = None,
|
45
45
|
fk_check: List[Dict[str, Any]] | None = None,
|
46
46
|
org_ulid_position: str = "organization_ulid",
|
47
|
-
role_permission: str = "create"
|
47
|
+
role_permission: str = "create",
|
48
|
+
token_settings: Dict[str, Any] = None
|
48
49
|
) -> ModelType:
|
49
|
-
payload = await verify_role_permission(request, role_permission)
|
50
50
|
|
51
51
|
try:
|
52
52
|
body = await request.json()
|
@@ -101,7 +101,8 @@ class BaseService(Generic[ModelType]):
|
|
101
101
|
exclude_entities: List[str] | None = None,
|
102
102
|
response_model: Any = None,
|
103
103
|
org_ulid_position: str = "organization_ulid",
|
104
|
-
role_permission: str = "update"
|
104
|
+
role_permission: str = "update",
|
105
|
+
token_settings: Dict[str, Any] = None
|
105
106
|
) -> ModelType:
|
106
107
|
try:
|
107
108
|
async with self.db_session.begin():
|
@@ -153,7 +154,8 @@ class BaseService(Generic[ModelType]):
|
|
153
154
|
ulid: str | None = None,
|
154
155
|
conditions: Dict[str, Any] | None = None,
|
155
156
|
org_ulid_position: str = "organization_ulid",
|
156
|
-
role_permission: str = "delete"
|
157
|
+
role_permission: str = "delete",
|
158
|
+
token_settings: Dict[str, Any] = None
|
157
159
|
) -> bool:
|
158
160
|
try:
|
159
161
|
if not ULID.from_str(ulid):
|
@@ -204,9 +206,18 @@ class BaseService(Generic[ModelType]):
|
|
204
206
|
explicit_joins: Optional[List[Any]] = None,
|
205
207
|
loading_joins: Optional[List[Any]] = None,
|
206
208
|
order: Optional[str] = None,
|
209
|
+
token_settings: Dict[str, Any] = None
|
207
210
|
) -> List[Dict[str, Any]]:
|
208
|
-
|
209
|
-
|
211
|
+
permission_result = await verify_role_permission(
|
212
|
+
request=request,
|
213
|
+
role_permission=role_permission,
|
214
|
+
token_settings=token_settings,
|
215
|
+
org_ulid_position=org_ulid_position
|
216
|
+
)
|
217
|
+
|
218
|
+
if permission_result and isinstance(permission_result, dict):
|
219
|
+
filters.append(permission_result)
|
220
|
+
|
210
221
|
try:
|
211
222
|
if order is None:
|
212
223
|
order = "created_at|desc"
|
@@ -243,7 +254,8 @@ class BaseService(Generic[ModelType]):
|
|
243
254
|
explicit_joins: Optional[List[Any]] = None,
|
244
255
|
loading_joins: Optional[List[Any]] = None,
|
245
256
|
org_ulid_position: str = "organization_ulid",
|
246
|
-
role_permission: str = "get"
|
257
|
+
role_permission: str = "get",
|
258
|
+
token_settings: Dict[str, Any] = None
|
247
259
|
):
|
248
260
|
try:
|
249
261
|
if not ulid and not conditions:
|
aiteamutils/security.py
CHANGED
@@ -284,8 +284,10 @@ async def verify_jwt_token(
|
|
284
284
|
|
285
285
|
async def verify_role_permission(
|
286
286
|
request: Request,
|
287
|
-
|
288
|
-
|
287
|
+
role_permission: str,
|
288
|
+
token_settings: Dict[str, Any] = None,
|
289
|
+
org_ulid_position: str = "organization_ulid"
|
290
|
+
) -> bool | Dict[str, Any]:
|
289
291
|
token = request.headers.get("Authorization")
|
290
292
|
|
291
293
|
if not token:
|
@@ -297,10 +299,21 @@ async def verify_role_permission(
|
|
297
299
|
|
298
300
|
token = token.split(" ")[1]
|
299
301
|
|
300
|
-
payload = await verify_jwt_token(
|
302
|
+
payload = await verify_jwt_token(
|
303
|
+
token=token,
|
304
|
+
token_settings=token_settings
|
305
|
+
)
|
301
306
|
|
302
307
|
organization_ulid = payload.get("organization_ulid")
|
308
|
+
organization_id = payload.get("organization_id")
|
303
309
|
role_ulid = payload.get("role_ulid")
|
304
310
|
user_ulid = payload.get("user_ulid")
|
305
311
|
|
306
|
-
|
312
|
+
if "list" in role_permission:
|
313
|
+
return {
|
314
|
+
"value": organization_ulid,
|
315
|
+
"operator": "eq",
|
316
|
+
"fields": [org_ulid_position]
|
317
|
+
}
|
318
|
+
|
319
|
+
return False
|
aiteamutils/version.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
"""버전 정보"""
|
2
|
-
__version__ = "0.2.
|
2
|
+
__version__ = "0.2.93"
|
@@ -1,15 +1,15 @@
|
|
1
1
|
aiteamutils/__init__.py,sha256=kRBpRjark0M8ZwFfmKiMFol6CbIILN3WE4f6_P6iIq0,1089
|
2
2
|
aiteamutils/base_model.py,sha256=bnRJJaGXGS3TKxfCWWV3arFjdG0qLsPFDXuguYsDyVM,3008
|
3
3
|
aiteamutils/base_repository.py,sha256=HKcgYyEb0JypojoXBFcIT39hPC5CqnjBkHT__GV-lfQ,4615
|
4
|
-
aiteamutils/base_service.py,sha256
|
4
|
+
aiteamutils/base_service.py,sha256=-WWjgfH9hXT5ptuG6GiN1ge19e2W1-9Ig6drjrR0cJA,10448
|
5
5
|
aiteamutils/cache.py,sha256=07xBGlgAwOTAdY5mnMOQJ5EBxVwe8glVD7DkGEkxCtw,1373
|
6
6
|
aiteamutils/config.py,sha256=YdalpJb70-txhGJAS4aaKglEZAFVWgfzw5BXSWpkUz4,3232
|
7
7
|
aiteamutils/database.py,sha256=b4fN0XHNWxMJeS5M95JcJ7tujAJ1x3SPTAfDvJdB4sE,19696
|
8
8
|
aiteamutils/enums.py,sha256=Z9wzR3H4XLpA4U3urR5e4eDnEY3Qhne34nLXsKXiL64,2177
|
9
9
|
aiteamutils/exceptions.py,sha256=wls-R8qbD7fWzEgDDY1Eiy1vXl59R5IsCXTRkZpBiGU,16021
|
10
|
-
aiteamutils/security.py,sha256=
|
10
|
+
aiteamutils/security.py,sha256=QVZFh0bOJX7Kz07dPJe6Tcs_UQmFOHPKp5yW3NlW1yE,11251
|
11
11
|
aiteamutils/validators.py,sha256=PvI9hbMEAqTawgxPbiWRyx2r9yTUrpNBQs1AD3w4F2U,7726
|
12
|
-
aiteamutils/version.py,sha256=
|
13
|
-
aiteamutils-0.2.
|
14
|
-
aiteamutils-0.2.
|
15
|
-
aiteamutils-0.2.
|
12
|
+
aiteamutils/version.py,sha256=On40GVmxltaTiv-ZooqdVZ6J84eToi0PLHliBs6p7f4,42
|
13
|
+
aiteamutils-0.2.93.dist-info/METADATA,sha256=i3HoWMMB0pJmyx1bMqPKeYcdPFGyOqB0D06XcSg8PRQ,1718
|
14
|
+
aiteamutils-0.2.93.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
15
|
+
aiteamutils-0.2.93.dist-info/RECORD,,
|
File without changes
|