utg-base 1.9.1__py3-none-any.whl → 1.10.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.
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"),
@@ -126,7 +126,6 @@ def create_serializer_for_partial_update(model: Model):
126
126
  'created_by',
127
127
  'updated_by',
128
128
  'deleted_by',
129
- 'code'
130
129
  } & set([field.name for field in fields_list])
131
130
  )
132
131
 
@@ -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.1
3
+ Version: 1.10.1
4
4
  Summary: UTG Base Package
5
5
  Author: Olimboy
6
6
  Author-email: shavkatov.olimboy@mail.ru
@@ -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
@@ -45,7 +45,7 @@ utg_base/references_api/apps.py,sha256=thAGmO-ZT-OD9dHHBSQRL_RRt-Es_jt-mEmHgVTpE
45
45
  utg_base/references_api/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  utg_base/references_api/models.py,sha256=Vjc0p2XbAPgE6HyTF6vll98A4eDhA5AvaQqsc4kQ9AQ,57
47
47
  utg_base/references_api/urls.py,sha256=WkLACQ8GfK5pJkvt8FuYdOxcqSZHj7pYRw51M9WluGw,390
48
- utg_base/references_api/utils.py,sha256=VSP-Q1x1XwhcLsK0hFYl0tpepltwDpby-3mmMSPuIps,5821
48
+ utg_base/references_api/utils.py,sha256=o-mM5S6LRvMZFQU0BAKFD0Kido28_ZytN-DttME2Rjk,5794
49
49
  utg_base/services/__init__.py,sha256=LqtwUiqEZPIbKRGJfve5D5m3ucV6Kw1Nbo5Jnj_hPhY,37
50
50
  utg_base/services/base_api.py,sha256=bMTmjy8TRN4WTCgV_1RvkquoqijJQ1hP7BBtPgW_AH0,5677
51
51
  utg_base/u_services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -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.1.dist-info/METADATA,sha256=siiom2x0MJZCTw4afNmGvV41TiYtFRoACdi15G0NnDY,916
67
- utg_base-1.9.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
68
- utg_base-1.9.1.dist-info/RECORD,,
67
+ utg_base-1.10.1.dist-info/METADATA,sha256=z6N4kDroQqrZf5r1216bwTG7RofqOsj52TNFnow_xmI,917
68
+ utg_base-1.10.1.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
69
+ utg_base-1.10.1.dist-info/RECORD,,