Example #1
0
from starlette.responses import FileResponse
from fastapi import Depends, FastAPI

import models


app = FastAPI()
app.add_middleware(BaseHTTPMiddleware, dispatch=middleware.db_session_middleware)

if not database_exists(engine.url):
    models.Base.metadata.create_all(engine)
    # Create default user
    _db: Session = SessionLocal()
    _db.add(models.User(
        username=os.getenv("ADMIN_USERNAME", "admin"),
        password=middleware.get_password_hash(os.getenv("ADMIN_PASSWORD", "admin")),
        full_name="Admin",
        role="admin",
        email=""
    ))
    _db.commit()
    _db.close()


app.include_router(
    user.router,
    prefix="/api/v1",
    tags=["user"],
    dependencies=[],
    responses={404: {"description": "Not found"}}
)
Example #2
0
def edit(form_data: schemas.UserInDB,
         user: schemas.UserInDB = Depends(middleware.auth),
         sess: Session = Depends(middleware.get_db)):
    form_data.password = middleware.get_password_hash(form_data.password)
    form_data.sync(sess)
    return form_data
Example #3
0
        )

    ADMIN_PASSWORD = os.getenv("ADMIN_PASSWORD")

    if not ADMIN_PASSWORD:
        raise RuntimeError(
            "Database does not exist and the environment variable ADMIN_PASSWORD is not set"
        )

    # Create database from metadata
    models.Base.metadata.create_all(engine)

    # Create default user
    _db.merge(
        models.User(username=ADMIN_USERNAME,
                    password=middleware.get_password_hash(ADMIN_PASSWORD),
                    full_name="Admin",
                    role="admin",
                    email=""))
    _db.commit()

# Do migrations
try:
    main(["version_control", DATABASE_URL, "migrations"])
except DatabaseAlreadyControlledError:
    pass
main(["upgrade", DATABASE_URL, "migrations"])

servers: typing.List[models.WGServer] = _db.query(models.WGServer).all()
for s in servers:
    try: