utg-base 1.9.0__py3-none-any.whl → 1.10.0__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.
utg_base/env.py CHANGED
@@ -6,9 +6,9 @@ from django.conf import settings
6
6
 
7
7
  dotenv.load_dotenv(settings.BASE_DIR / '.env')
8
8
 
9
- assert os.environ.get('VAULT_URL') is not None, ("VAULT_URL not defined, please set VAULT_URL on .env file")
10
- assert os.environ.get('VAULT_TOKEN') is not None, ("VAULT_TOKEN not defined, please set VAULT_TOKEN on .env file")
11
- assert os.environ.get('VAULT_PATH') is not None, ("VAULT_PATH not defined, please set VAULT_PATH on .env file")
9
+ assert os.environ.get('VAULT_URL') is not None, "VAULT_URL not defined, please set VAULT_URL on .env file"
10
+ assert os.environ.get('VAULT_TOKEN') is not None, "VAULT_TOKEN not defined, please set VAULT_TOKEN on .env file"
11
+ assert os.environ.get('VAULT_PATH') is not None, "VAULT_PATH not defined, please set VAULT_PATH on .env file"
12
12
 
13
13
  client = hvac.Client(
14
14
  url=os.environ.get("VAULT_URL"),
@@ -0,0 +1,24 @@
1
+ from typing import Literal
2
+
3
+ from django_redis import get_redis_connection
4
+ from redis.client import Redis
5
+
6
+
7
+ def generate_perm_cache_key(user_id: str):
8
+ return f"user:{user_id}:permissions"
9
+
10
+
11
+ def has_perm(user_id, perm):
12
+ redis_conn: Redis = get_redis_connection("shared")
13
+
14
+ return bool(redis_conn.sismember(f'user:{user_id}:permissions', perm))
15
+
16
+
17
+ def has_perms(user_id: str, perms: list[str], operator: Literal["OR", "AND"] = "OR"):
18
+ redis_conn: Redis = get_redis_connection("shared")
19
+
20
+ result = redis_conn.smismember(f'user:{user_id}:permissions', perms)
21
+
22
+ if operator == "OR":
23
+ return any(result)
24
+ return all(result)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: utg-base
3
- Version: 1.9.0
3
+ Version: 1.10.0
4
4
  Summary: UTG Base Package
5
5
  Author: Olimboy
6
6
  Author-email: shavkatov.olimboy@mail.ru
@@ -12,6 +12,7 @@ Requires-Dist: django (>=5.2.7,<6.0.0)
12
12
  Requires-Dist: django-celery-beat (>=2.8.1,<3.0.0)
13
13
  Requires-Dist: django-celery-results (>=2.6.0,<3.0.0)
14
14
  Requires-Dist: django-filter (>=23.5,<24.0)
15
+ Requires-Dist: django-redis (>=6.0.0,<7.0.0)
15
16
  Requires-Dist: djangorestframework (>=3.16.1,<4.0.0)
16
17
  Requires-Dist: djangorestframework-simplejwt[crypto] (>=5.5.1,<6.0.0)
17
18
  Requires-Dist: dotenv (>=0.9.9,<0.10.0)
@@ -26,7 +26,7 @@ utg_base/celery/views/periodic_task.py,sha256=OyRJh_-KCicUZD84hksRoOXLHGk7mLF7Ql
26
26
  utg_base/celery/views/task_result.py,sha256=c9HIcohrToRfz1jfZRRZ1ri15FOasjKgMYnzKcA2X8M,726
27
27
  utg_base/constants/__init__.py,sha256=nC8qE-2V6APtjSz8j0A-3ez8yyoRpdRO8pwQnvvpRMk,53
28
28
  utg_base/constants/available_languages.py,sha256=zQh0S0PMuYUdRW_RH36llvMxbvsfbdUtotDjFeysWfQ,56
29
- utg_base/env.py,sha256=9jRWlaifSDmss6qU2FG2aP0SHP-gPSdk14rjohuXvfM,940
29
+ utg_base/env.py,sha256=zwrvHZFfGlqKPB8ytGMiDZD-5UGLTotqq6lu7ZM6Ric,934
30
30
  utg_base/logging.py,sha256=JHGhuLKU1js_26ReE0LCLWZ66fmlGKuLG9sfbQSfI5w,4565
31
31
  utg_base/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  utg_base/middleware/debug.py,sha256=exkeYUK-zSN3PMd4L9F6WlROmQ7Qlpmi_Gr2dqt5vk4,416
@@ -59,10 +59,11 @@ utg_base/utils/__init__.py,sha256=5XmIPVpOl9Tjtzkx_bBeZD1uCpBE-R3WX6yiJii9Ip0,10
59
59
  utg_base/utils/data.py,sha256=gbDEmEcmtaP1iCKEPG5I-q4orl8N3jvVc5eFNkkhG3c,2840
60
60
  utg_base/utils/date.py,sha256=thcbK6RgTUYZfs4_vW5ucuu2e8H0rei6tv7SEC72iwM,3612
61
61
  utg_base/utils/dict_util.py,sha256=ipdCZO8aTukGQ319OWHb2Ij5MNtV-FioJQ4qCX3Th48,758
62
+ utg_base/utils/permission.py,sha256=B-LTbU2oqas1eo02VMsT8BkvxxBpqtMJBS_ybzavxcU,646
62
63
  utg_base/utils/response_processors.py,sha256=WdZQL49wOJqCIY2MucAI6sez_llCqih0v_ltQa-mv7k,687
63
64
  utg_base/utils/sql.py,sha256=rqIWcSjdjIMszdRnsnhV5TTYB8W17RPOujIQA9rKC_Y,762
64
65
  utg_base/utils/thread.py,sha256=4RqRnwtyHymY-dNcuPrMSTamE2V7wCMVfzzyIb0P4TI,2191
65
66
  utg_base/utils/translation.py,sha256=GxJHUt0iar_0E7RWBPbeLFQ4DhgXBjffHCmxfKyjFtk,463
66
- utg_base-1.9.0.dist-info/METADATA,sha256=7YhFizPWat-_eK_016kzB625GE--P9rXFx5c1DYEttw,871
67
- utg_base-1.9.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
68
- utg_base-1.9.0.dist-info/RECORD,,
67
+ utg_base-1.10.0.dist-info/METADATA,sha256=IGeaJ0fl2dW1bddPGIVPmnzopI6-YwzAEp8llzNHfiU,917
68
+ utg_base-1.10.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
69
+ utg_base-1.10.0.dist-info/RECORD,,