Working on RBAC.

This commit is contained in:
charles-gauthereau
2024-10-27 15:56:43 +01:00
parent b62261896b
commit 4f8cb485c3
12 changed files with 150 additions and 16 deletions
+22 -8
View File
@@ -1,24 +1,38 @@
import os
from contextlib import asynccontextmanager
from fastapi import FastAPI
from sqlalchemy.orm import Session
from starlette.middleware.trustedhost import TrustedHostMiddleware
from starlette.staticfiles import StaticFiles
from fastapi.responses import FileResponse
from database import BaseModel, engine
from apps.users.roles import Role
from apps.users.schemas import UserCreate, User, AdminUserCreate
from database import BaseModel, engine, SessionLocal
from middleware.db_connection import DatabaseSessionMiddleware
from routes.main import api_router
from fastapi.middleware.cors import CORSMiddleware
from settings import config
def init_default_users(db: Session):
from apps.users import crud
print("Initializing default users...")
if not crud.get_user_by_email(db, "admin@portabase.com"):
print("Creating admin user...")
user = AdminUserCreate(email="admin@portabase.com", password="password", role=Role.ADMIN)
crud.create_admin_user(db, user)
@asynccontextmanager
async def lifespan(app: FastAPI):
print("Initialising database...")
BaseModel.metadata.create_all(bind=engine)
print("Database initialised!")
# Initialize default users
db = SessionLocal()
try:
init_default_users(db)
finally:
db.close()
yield
print("App shutdown!")
@@ -27,8 +41,8 @@ middlewares = []
app = FastAPI(lifespan=lifespan, middleware=middlewares)
app.add_middleware(DatabaseSessionMiddleware)
app.add_middleware(TrustedHostMiddleware, allowed_hosts=config.ALLOWED_HOSTS)
app.include_router(api_router)