Fix auth dependency

This commit is contained in:
2025-05-11 11:18:51 +02:00
parent 388200fd52
commit 3dfd03688b
4 changed files with 23 additions and 8 deletions

View File

@ -2,9 +2,10 @@
from collections.abc import AsyncGenerator, Callable, Generator
from dataclasses import dataclass
from typing import Self
from typing import Awaitable, Self
from sqlmodel import Session
from sshecret_admin.auth import User
from sshecret_admin.services import AdminBackend
from sshecret_admin.core.settings import AdminServerSettings
@ -13,6 +14,8 @@ DBSessionDep = Callable[[], Generator[Session, None, None]]
AdminDep = Callable[[Session], AsyncGenerator[AdminBackend, None]]
GetUserDep = Callable[[User], Awaitable[User]]
@dataclass
class BaseDependencies:
@ -21,17 +24,25 @@ class BaseDependencies:
settings: AdminServerSettings
get_db_session: DBSessionDep
@dataclass
class AdminDependencies(BaseDependencies):
"""Dependency class with admin."""
get_admin_backend: AdminDep
get_current_active_user: GetUserDep
@classmethod
def create(cls, deps: BaseDependencies, get_admin_backend: AdminDep) -> Self:
def create(
cls,
deps: BaseDependencies,
get_admin_backend: AdminDep,
get_current_active_user: GetUserDep,
) -> Self:
"""Create from base dependencies."""
return cls(
settings=deps.settings,
get_db_session=deps.get_db_session,
get_admin_backend=get_admin_backend,
get_current_active_user=get_current_active_user,
)