This commit is contained in:
2026-01-25 14:36:01 +01:00
commit fdf1e0e8ed
22 changed files with 1269 additions and 0 deletions

53
backend/main.py Normal file
View File

@@ -0,0 +1,53 @@
from fastapi import FastAPI, Depends
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
from .database import engine, Base, SessionLocal
from .routers import auth, users, apps, sso
from . import models, auth_utils
from sqlalchemy.orm import Session
# Create tables
Base.metadata.create_all(bind=engine)
app = FastAPI(title="ASF SSO Service")
# CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Routers
app.include_router(auth.router)
app.include_router(users.router)
app.include_router(apps.router)
app.include_router(sso.router)
# Mount static files (Frontend)
app.mount("/", StaticFiles(directory="../frontend", html=True), name="static")
# Create initial admin user if not exists
def create_initial_admin():
db = SessionLocal()
try:
admin = db.query(models.User).filter(models.User.username == "admin").first()
if not admin:
print("Creating initial admin user...")
hashed_pwd = auth_utils.get_password_hash("admin") # Default password, should be changed
admin_user = models.User(
username="admin",
email="admin@nabd-co.com",
hashed_password=hashed_pwd,
is_admin=True,
is_active=True
)
db.add(admin_user)
db.commit()
print("Admin user created.")
finally:
db.close()
create_initial_admin()