41 lines
1.1 KiB
Python
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
|