arpakitlib 1.8.23__py3-none-any.whl → 1.8.24__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.
- arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/example.env +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py +10 -6
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +12 -0
- {arpakitlib-1.8.23.dist-info → arpakitlib-1.8.24.dist-info}/METADATA +1 -1
- {arpakitlib-1.8.23.dist-info → arpakitlib-1.8.24.dist-info}/RECORD +16 -16
- {arpakitlib-1.8.23.dist-info → arpakitlib-1.8.24.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.23.dist-info → arpakitlib-1.8.24.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.23.dist-info → arpakitlib-1.8.24.dist-info}/entry_points.txt +0 -0
@@ -5,7 +5,7 @@ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
|
5
5
|
|
6
6
|
def __command():
|
7
7
|
setup_logging()
|
8
|
-
get_cached_settings().
|
8
|
+
get_cached_settings().raise_if_prod_mode()
|
9
9
|
get_cached_sqlalchemy_db().drop()
|
10
10
|
get_cached_sqlalchemy_db().drop_celery_tables()
|
11
11
|
get_cached_sqlalchemy_db().drop_alembic_tables()
|
@@ -6,7 +6,7 @@ from sqladmin.authentication import AuthenticationBackend
|
|
6
6
|
from arpakitlib.ar_str_util import make_none_if_blank
|
7
7
|
from project.core.settings import get_cached_settings
|
8
8
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
9
|
-
from project.sqlalchemy_db_.sqlalchemy_model import UserTokenDBM
|
9
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserTokenDBM, UserDBM
|
10
10
|
|
11
11
|
SQLADMIN_AUTH_KEY = "sqladmin_auth_key"
|
12
12
|
|
@@ -56,9 +56,9 @@ class SQLAdminAuth(AuthenticationBackend):
|
|
56
56
|
elif password is not None:
|
57
57
|
query = query.filter(UserTokenDBM.value == password)
|
58
58
|
user_token = query.one_or_none()
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
if user_token is not None and user_token.user.compare_roles(UserDBM.Roles.admin):
|
60
|
+
request.session.update({SQLADMIN_AUTH_KEY: user_token.value})
|
61
|
+
return True
|
62
62
|
|
63
63
|
return False
|
64
64
|
|
@@ -78,9 +78,13 @@ class SQLAdminAuth(AuthenticationBackend):
|
|
78
78
|
|
79
79
|
if get_cached_sqlalchemy_db() is not None and sqladmin_auth_key is not None:
|
80
80
|
with get_cached_sqlalchemy_db().new_session() as session:
|
81
|
-
query = session.query(
|
81
|
+
query = session.query(
|
82
|
+
UserTokenDBM
|
83
|
+
).filter(
|
84
|
+
UserTokenDBM.value == sqladmin_auth_key
|
85
|
+
)
|
82
86
|
user_token = query.one_or_none()
|
83
|
-
if user_token is not None:
|
87
|
+
if user_token is not None and user_token.user.compare_roles(UserDBM.Roles.admin):
|
84
88
|
return True
|
85
89
|
|
86
90
|
return False
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py
CHANGED
@@ -1,16 +1,26 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
from typing import TYPE_CHECKING
|
4
|
+
from uuid import uuid4
|
4
5
|
|
5
6
|
import sqlalchemy
|
6
7
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
7
8
|
|
9
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
8
10
|
from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
|
9
11
|
|
10
12
|
if TYPE_CHECKING:
|
11
13
|
from project.sqlalchemy_db_.sqlalchemy_model.user import UserDBM
|
12
14
|
|
13
15
|
|
16
|
+
def generate_default_user_token_value() -> str:
|
17
|
+
return (
|
18
|
+
f"usertoken"
|
19
|
+
f"{str(uuid4()).replace('-', '')}"
|
20
|
+
f"{str(now_utc_dt().timestamp()).replace('.', '')}"
|
21
|
+
)
|
22
|
+
|
23
|
+
|
14
24
|
class UserTokenDBM(SimpleDBM):
|
15
25
|
__tablename__ = "user_token"
|
16
26
|
|
@@ -18,6 +28,8 @@ class UserTokenDBM(SimpleDBM):
|
|
18
28
|
sqlalchemy.TEXT,
|
19
29
|
unique=True,
|
20
30
|
nullable=False,
|
31
|
+
insert_default=generate_default_user_token_value,
|
32
|
+
server_default=sqlalchemy.func.gen_random_uuid(),
|
21
33
|
)
|
22
34
|
user_id: Mapped[int] = mapped_column(
|
23
35
|
sqlalchemy.INTEGER,
|
@@ -23,7 +23,7 @@ arpakitlib/_arpakit_project_template_v_5/command/docker_run_postgres.sh,sha256=0
|
|
23
23
|
arpakitlib/_arpakit_project_template_v_5/command/docker_start_postgres.sh,sha256=72YG671c0bP20GRZCKdp9a6JZzn70CslWSS7d6K4n1s,61
|
24
24
|
arpakitlib/_arpakit_project_template_v_5/command/docker_stop_postgres.sh,sha256=OgmaUMIH418N4iSKYyfzmUehIvDZd7n1VERv1GQHefY,60
|
25
25
|
arpakitlib/_arpakit_project_template_v_5/command/drop_json_db.py,sha256=cojYWq44is6lqE6G2IfhO75InQDAGmg_k3f-CvL0GKQ,316
|
26
|
-
arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py,sha256=
|
26
|
+
arpakitlib/_arpakit_project_template_v_5/command/drop_sqlalchemy_db.py,sha256=oR4CQ74HpeWJtJH77nLaLiWbMCT8LzCm4Nmnu1jrZIc,446
|
27
27
|
arpakitlib/_arpakit_project_template_v_5/command/generate_settings_env_example.py,sha256=v05NKSG-hFZyFiMfV6n8uObv-1qoS59UdztSsq4lF1c,437
|
28
28
|
arpakitlib/_arpakit_project_template_v_5/command/git_commit.sh,sha256=AW1NEel-ZHaYeVWFlRbgZSYPQdnVKsTkpR_07RQL1Mw,42
|
29
29
|
arpakitlib/_arpakit_project_template_v_5/command/git_push_arpakit_company_github_1.sh,sha256=Sx-OegryHeNTIfAOoCfj3Z3CF-XKEY0AJF5HVJAgGpU,70
|
@@ -67,7 +67,7 @@ arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_for_prod.py,sha2
|
|
67
67
|
arpakitlib/_arpakit_project_template_v_5/command/start_sqladmin_with_reload.py,sha256=KmbadM6bmsQfP23xTn8aBzlvCQ1J2rLAuFk0_RCChjs,374
|
68
68
|
arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot.py,sha256=AJ1AxfdpbayBhScy6yAPVkSWnHJjzOTHxEewwGKaJMQ,200
|
69
69
|
arpakitlib/_arpakit_project_template_v_5/command/start_tg_bot_for_prod.py,sha256=AJ1AxfdpbayBhScy6yAPVkSWnHJjzOTHxEewwGKaJMQ,200
|
70
|
-
arpakitlib/_arpakit_project_template_v_5/example.env,sha256=
|
70
|
+
arpakitlib/_arpakit_project_template_v_5/example.env,sha256=CjtUXd8TjfjQH4u77j1fBKkGQH1td7sa59-MSMzXW7U,1019
|
71
71
|
arpakitlib/_arpakit_project_template_v_5/note/note_1.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
72
72
|
arpakitlib/_arpakit_project_template_v_5/note/note_2.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
73
|
arpakitlib/_arpakit_project_template_v_5/note/note_3.txt,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -199,27 +199,27 @@ arpakitlib/_arpakit_project_template_v_5/project/site/router/__init__.py,sha256=
|
|
199
199
|
arpakitlib/_arpakit_project_template_v_5/project/site/router/main_router.py,sha256=J5jNfgd-3OiWTtuubimEUz6wrOogupj9PkUdDmwz-2U,62
|
200
200
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
201
201
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/add_admin_in_app.py,sha256=JTXLf18DQVsZtoe6yFpZIVJI95rgJofnTe9YKyVwwhQ,851
|
202
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sha256=
|
202
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/admin_authorize.py,sha256=0yL6YIobNvc4SGOV_Hq_NuugoM_b6WD8Pb_0eqgnZHo,3692
|
203
203
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/asgi.py,sha256=DRlRPkcOGXOccfP73oKEXolZTsc5VWdQgEG-qoW03ms,99
|
204
204
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/create_sqladmin_app.py,sha256=x5F8--5KA4cmTrb6kAAmp6fVd2TiqxPOzxqUkSEhSG4,1298
|
205
205
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/event.py,sha256=LjAUYNlsX9Sj_QLMzYuTQbbYYbIMHhbsSjTXt-G7lOE,849
|
206
206
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/__init__.py,sha256=MtEk37LR9xg5XltEbIAw1hh74BsS70I2G3C21QSbjVQ,357
|
207
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=
|
207
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/api_key.py,sha256=5MGJDKvqtKhvR-a-8QFLNCdGa6G1gyA1sydjZgksQM8,812
|
208
208
|
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/common.py,sha256=WSlZ2wOyrUVX-6nO0NRCZJ9dgPrY2ytANrhkooYq_w8,560
|
209
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=
|
210
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=
|
211
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=
|
212
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=
|
209
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/operation.py,sha256=6qzWrt2xQ_2PL8SQYp4AZ-9qSgfbckd05HZcEg7dR4M,1232
|
210
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/story_log.py,sha256=WCxPZANZhW6TTBqu2H11ajaLdSe8uYoTO3NJFE2_57c,918
|
211
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user.py,sha256=Vkeh8uG-uXKSAXCIZtFIJHsseq7cqGvba4kJUHPwMRY,963
|
212
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqladmin_/model_view/user_token.py,sha256=QtY7fkrMWZT0XayuX0mMJH7lBy15HGxULpWF8NRIj_s,915
|
213
213
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
214
214
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/const.py,sha256=dcvj5C9E2F2KCsGZPBBncQf_EvVJAC1qQgnyD8P4ZEw,6
|
215
215
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_db.py,sha256=1y3FaMFzm_5UM2poqtBve_UP_mh1vjs--krq6yO8PsA,742
|
216
216
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/__init__.py,sha256=btSjCQ7RJqomeXzYs9HePCu1dZHs0z6-RuboYKG89_8,598
|
217
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=
|
218
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=
|
217
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py,sha256=RVkfa6kuhdv1D_3Qindh4bucapqz5MZa5gNkiYuwC14,1096
|
218
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py,sha256=St2jp3kvVbz4iE9ZEiJNGUGsVSzW1LaVokpBo0X2VB0,1905
|
219
219
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py,sha256=xm_0X5DNoLtw_2HkDVd386cleOFBeA-Ll7Cr2hw-fgk,3288
|
220
220
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py,sha256=uB7nKEqvUKJyE_xybJUjXIJtVXh0IKyoPDnDUogq8lE,1306
|
221
221
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user.py,sha256=GaOJkxsQ6B3B4pO43_MOOrJSUE8d7VzXyYLQcoEvCCw,2355
|
222
|
-
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=
|
222
|
+
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py,sha256=AtFEPQZlYl_fr0WgYkS8ToiHluNomXV02HDuD0nVjZw,1398
|
223
223
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/util.py,sha256=QSA_nT6aWdtE412-Uj3VTd7yh3dzS4HugDK9FivjTPo,570
|
224
224
|
arpakitlib/_arpakit_project_template_v_5/project/test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
225
225
|
arpakitlib/_arpakit_project_template_v_5/project/test_data/make_test_api_keys.py,sha256=RXIEB5zOFHtQ_B0t_JlQ0ihjFbkVtW7six6CLdxft3w,901
|
@@ -353,8 +353,8 @@ arpakitlib/ar_type_util.py,sha256=Cs_tef-Fc5xeyAF54KgISCsP11NHyzIsglm4S3Xx7iM,40
|
|
353
353
|
arpakitlib/ar_wata_api_client.py,sha256=gdHOqDbuqxhTjVDtRW1DvkRJLdDofCrOq51GTctzLns,242
|
354
354
|
arpakitlib/ar_yookassa_api_client_util.py,sha256=VozuZeCJjmLd1zj2BdC9WfiAQ3XYOrIMsdpNK-AUlm0,5347
|
355
355
|
arpakitlib/ar_zabbix_api_client_util.py,sha256=Q-VR4MvoZ9aHwZeYZr9G3LwN-ANx1T5KFmF6pvPM-9M,6402
|
356
|
-
arpakitlib-1.8.
|
357
|
-
arpakitlib-1.8.
|
358
|
-
arpakitlib-1.8.
|
359
|
-
arpakitlib-1.8.
|
360
|
-
arpakitlib-1.8.
|
356
|
+
arpakitlib-1.8.24.dist-info/LICENSE,sha256=GPEDQMam2r7FSTYqM1mm7aKnxLaWcBotH7UvQtea-ec,11355
|
357
|
+
arpakitlib-1.8.24.dist-info/METADATA,sha256=k6ISnzO5R-y9MaHuUZZP-lnF3u32k2T61wQzXlVzIfA,3432
|
358
|
+
arpakitlib-1.8.24.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
359
|
+
arpakitlib-1.8.24.dist-info/entry_points.txt,sha256=36xqR3PJFT2kuwjkM_EqoIy0qFUDPKSm_mJaI7emewE,87
|
360
|
+
arpakitlib-1.8.24.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|