From c793b73fa2a927f8db9fdb76316721817eec7219 Mon Sep 17 00:00:00 2001 From: Artem Kokos Date: Sat, 28 Mar 2026 21:31:45 +0700 Subject: [PATCH] Blacked --- app/api/deps.py | 15 ++++++++++----- app/models/api_key.py | 11 ++++++++--- main.py | 2 +- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/app/api/deps.py b/app/api/deps.py index 862a67a..d5ddbae 100644 --- a/app/api/deps.py +++ b/app/api/deps.py @@ -26,9 +26,10 @@ api_key_header = APIKeyHeader(name=API_KEY_NAME, auto_error=False) @dataclass class AuthContext: """Результат авторизации -- передаётся в роуты через Depends.""" - is_master: bool # мастер-ключ из .env - is_admin: bool # право на CRUD групп, расписания, ресканирование - key_name: str # имя ключа (для логов) + + is_master: bool # мастер-ключ из .env + is_admin: bool # право на CRUD групп, расписания, ресканирование + key_name: str # имя ключа (для логов) async def verify_token(header_value: str = Depends(api_key_header)) -> AuthContext: @@ -44,7 +45,9 @@ async def verify_token(header_value: str = Depends(api_key_header)) -> AuthConte return AuthContext(is_master=True, is_admin=True, key_name="no-auth") if not header_value: - raise HTTPException(status_code=HTTP_403_FORBIDDEN, detail="API-ключ не передан") + raise HTTPException( + status_code=HTTP_403_FORBIDDEN, detail="API-ключ не передан" + ) # Мастер-ключ if header_value == MASTER_KEY: @@ -64,7 +67,9 @@ async def verify_token(header_value: str = Depends(api_key_header)) -> AuthConte key_name=api_key.name, ) - raise HTTPException(status_code=HTTP_403_FORBIDDEN, detail="Неверный или деактивированный ключ") + raise HTTPException( + status_code=HTTP_403_FORBIDDEN, detail="Неверный или деактивированный ключ" + ) def require_admin(auth: AuthContext = Depends(verify_token)) -> AuthContext: diff --git a/app/models/api_key.py b/app/models/api_key.py index 9601410..0a10e7a 100644 --- a/app/models/api_key.py +++ b/app/models/api_key.py @@ -7,13 +7,18 @@ from app.core.database import Base class ApiKeyModel(Base): """Гостевой API-ключ с ограниченными правами.""" + __tablename__ = "api_keys" key: Mapped[str] = mapped_column(String, primary_key=True) - name: Mapped[str] = mapped_column(String) # "Вася", "гости" - is_admin: Mapped[bool] = mapped_column(Boolean, default=False) # доступ к CRUD групп, расписаниям + name: Mapped[str] = mapped_column(String) # "Вася", "гости" + is_admin: Mapped[bool] = mapped_column( + Boolean, default=False + ) # доступ к CRUD групп, расписаниям active: Mapped[bool] = mapped_column(Boolean, default=True) - created_at: Mapped[str] = mapped_column(String, default=lambda: datetime.now().isoformat()) + created_at: Mapped[str] = mapped_column( + String, default=lambda: datetime.now().isoformat() + ) @staticmethod def generate_key() -> str: diff --git a/main.py b/main.py index 57bd550..b64b539 100644 --- a/main.py +++ b/main.py @@ -64,7 +64,7 @@ async def read_index(): @app.get("/auth/me") -async def auth_me(auth = Depends(verify_token)): +async def auth_me(auth=Depends(verify_token)): return {"is_admin": auth.is_admin, "name": auth.key_name}