mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-04-19 05:54:08 +02:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from fastapi import APIRouter, Depends
|
|
from fastapi import status
|
|
from sqlalchemy import select
|
|
|
|
from media_manager.config import AllEncompassingConfig
|
|
from media_manager.auth.db import User
|
|
from media_manager.auth.schemas import UserRead
|
|
from media_manager.auth.users import current_superuser
|
|
from media_manager.database import DbSessionDependency
|
|
|
|
users_router = APIRouter()
|
|
auth_metadata_router = APIRouter()
|
|
oauth_config = AllEncompassingConfig().auth.openid_connect
|
|
|
|
|
|
@users_router.get(
|
|
"/users/all",
|
|
status_code=status.HTTP_200_OK,
|
|
dependencies=[Depends(current_superuser)],
|
|
)
|
|
def get_all_users(db: DbSessionDependency) -> list[UserRead]:
|
|
stmt = select(User)
|
|
result = db.execute(stmt).scalars().unique()
|
|
return [UserRead.model_validate(user) for user in result]
|
|
|
|
|
|
@auth_metadata_router.get("/auth/metadata", status_code=status.HTTP_200_OK)
|
|
def get_auth_metadata() -> dict:
|
|
if oauth_config.enabled:
|
|
return {
|
|
"oauth_name": oauth_config.name,
|
|
}
|
|
else:
|
|
return {"oauth_name": None}
|