utg-base 1.12.0__tar.gz → 1.13.0__tar.gz

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.
Files changed (75) hide show
  1. {utg_base-1.12.0 → utg_base-1.13.0}/PKG-INFO +1 -1
  2. {utg_base-1.12.0 → utg_base-1.13.0}/pyproject.toml +1 -1
  3. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/permissions/utils.py +2 -2
  4. utg_base-1.13.0/src/utg_base/signals/__init__.py +1 -0
  5. utg_base-1.13.0/src/utg_base/signals/sync_perms.py +19 -0
  6. {utg_base-1.12.0 → utg_base-1.13.0}/README.md +0 -0
  7. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/__init__.py +0 -0
  8. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/__init__.py +0 -0
  9. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/base.py +0 -0
  10. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/pagination.py +0 -0
  11. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/permissions.py +0 -0
  12. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/routers.py +0 -0
  13. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/serializers.py +0 -0
  14. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/spectacular.py +0 -0
  15. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/api/views.py +0 -0
  16. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/authentications/__init__.py +0 -0
  17. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/authentications/microservice_authentication.py +0 -0
  18. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/authentications/models.py +0 -0
  19. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/__init__.py +0 -0
  20. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/apps.py +0 -0
  21. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/filters/__init__.py +0 -0
  22. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/filters/task_result.py +0 -0
  23. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/management/__init__.py +0 -0
  24. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/management/commands/__init__.py +0 -0
  25. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/management/commands/migrate_tasks.py +0 -0
  26. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/serializers/__init__.py +0 -0
  27. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/serializers/periodic_task.py +0 -0
  28. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/serializers/task_result.py +0 -0
  29. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/urls.py +0 -0
  30. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/views/__init__.py +0 -0
  31. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/views/periodic_task.py +0 -0
  32. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/celery/views/task_result.py +0 -0
  33. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/constants/__init__.py +0 -0
  34. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/constants/available_languages.py +0 -0
  35. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/env.py +0 -0
  36. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/logging.py +0 -0
  37. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/middleware/__init__.py +0 -0
  38. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/middleware/debug.py +0 -0
  39. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/middleware/locale.py +0 -0
  40. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/migration/__init__.py +0 -0
  41. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/migration/apps.py +0 -0
  42. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/migration/management/__init__.py +0 -0
  43. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/migration/management/commands/__init__.py +0 -0
  44. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/migration/management/commands/makemigrations.py +0 -0
  45. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/models/__init__.py +0 -0
  46. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/models/jwt_user.py +0 -0
  47. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/models/timestamp.py +0 -0
  48. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/permissions/__init__.py +0 -0
  49. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/permissions/decorators.py +0 -0
  50. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/__init__.py +0 -0
  51. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/admin.py +0 -0
  52. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/apps.py +0 -0
  53. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/migrations/__init__.py +0 -0
  54. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/models.py +0 -0
  55. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/urls.py +0 -0
  56. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/references_api/utils.py +0 -0
  57. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/services/__init__.py +0 -0
  58. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/services/base_api.py +0 -0
  59. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/__init__.py +0 -0
  60. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/apps.py +0 -0
  61. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/constants.py +0 -0
  62. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/migrations/0001_initial.py +0 -0
  63. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/migrations/__init__.py +0 -0
  64. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/models.py +0 -0
  65. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/u_services/u_requests.py +0 -0
  66. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/__init__.py +0 -0
  67. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/data.py +0 -0
  68. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/date.py +0 -0
  69. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/dict_util.py +0 -0
  70. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/response_processors.py +0 -0
  71. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/signals.py +0 -0
  72. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/sql.py +0 -0
  73. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/string.py +0 -0
  74. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/thread.py +0 -0
  75. {utg_base-1.12.0 → utg_base-1.13.0}/src/utg_base/utils/translation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: utg-base
3
- Version: 1.12.0
3
+ Version: 1.13.0
4
4
  Summary: UTG Base Package
5
5
  Author: Olimboy
6
6
  Author-email: shavkatov.olimboy@mail.ru
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "utg-base"
3
- version = "1.12.0"
3
+ version = "1.13.0"
4
4
  description = "UTG Base Package"
5
5
  authors = ["Olimboy <shavkatov.olimboy@mail.ru>", "Rovshen <rovshenashirov1619@gmail.com>"]
6
6
  readme = "README.md"
@@ -19,13 +19,13 @@ def generate_perm_cache_key(user_id: str):
19
19
 
20
20
  def has_perm(user_id, perm):
21
21
  redis_conn: Redis = get_redis_connection("shared")
22
- perm = f"{to_snake_case(env('APP_NAME')):{perm}}"
22
+ perm = f"{to_snake_case(env('APP_NAME'))}:{perm}"
23
23
  return bool(redis_conn.sismember(f'user:{user_id}:permissions', perm))
24
24
 
25
25
 
26
26
  def has_perms(user_id: str, perms: list[str], operator: Literal["OR", "AND"] = "OR"):
27
27
  redis_conn: Redis = get_redis_connection("shared")
28
- perms = [f"{to_snake_case(env('APP_NAME')):{perm}}" for perm in perms]
28
+ perms = [f"{to_snake_case(env('APP_NAME'))}:{perm}" for perm in perms]
29
29
  result = redis_conn.smismember(f'user:{user_id}:permissions', perms)
30
30
 
31
31
  if operator == "OR":
@@ -0,0 +1 @@
1
+ from .sync_perms import sync_perms
@@ -0,0 +1,19 @@
1
+ import time
2
+
3
+ from django.apps import apps
4
+ from django.core.cache import cache
5
+ from django.dispatch import receiver
6
+ from utg_base.permissions.utils import sync_permissions
7
+ from utg_base.utils.signals import app_ready
8
+
9
+
10
+ @receiver(app_ready)
11
+ def sync_perms(sender, **kwargs):
12
+ # wait all apps ready
13
+ while not apps.ready:
14
+ time.sleep(0.1)
15
+
16
+ # only run 1 time (not all gunicorn workers)
17
+ if not cache.add("sync_perms", True, timeout=10):
18
+ return
19
+ sync_permissions()
File without changes
File without changes