o2o-castad-backend/app/admin_manager.py

41 lines
1.1 KiB
Python

from fastapi import FastAPI
from sqladmin import Admin
from app.backoffice.admin.admin_view import AdminAdmin
from app.backoffice.admin.auth import AdminAuthBackend
from app.backoffice.credit_view import CreditChargeRequestAdmin, CreditTransactionAdmin, CreditTransactionAdmin
from sqlalchemy.ext.asyncio import AsyncEngine
from app.user.api.user_admin import RefreshTokenAdmin, SocialAccountAdmin, UserAdmin
from config import prj_settings
# https://github.com/aminalaee/sqladmin
def init_admin(
app: FastAPI,
db_engine: AsyncEngine,
base_url: str = prj_settings.ADMIN_BASE_URL,
) -> Admin:
auth_backend = AdminAuthBackend(secret_key=prj_settings.ADMIN_SESSION_SECRET)
admin = Admin(
app,
db_engine,
base_url=base_url,
authentication_backend=auth_backend,
title="ADO2 관리자",
)
# 사용자 관리
admin.add_view(UserAdmin)
admin.add_view(SocialAccountAdmin)
# 크레딧 관리
admin.add_view(CreditChargeRequestAdmin)
admin.add_view(CreditTransactionAdmin)
# 백오피스 설정
admin.add_view(AdminAdmin)
return admin