Add root user initialization
This commit is contained in:
parent
07dcd3d1a7
commit
e0c570799f
4 changed files with 33 additions and 1 deletions
5
.env.dev
5
.env.dev
|
|
@ -6,3 +6,8 @@ CGNO_ID_DB_PASSWORD=root
|
|||
CGNO_ID_DB_HOST=127.0.0.1
|
||||
CGNO_ID_DB_NAME=cgno-id
|
||||
#
|
||||
|
||||
# Root
|
||||
CGNO_ROOT_EMAIL=cognioandrey@gmail.com
|
||||
CGNO_ROOT_PASSWORD=password
|
||||
#
|
||||
|
|
@ -3,6 +3,7 @@ from starlette.middleware.cors import CORSMiddleware
|
|||
|
||||
from app.user.handlers import router as user_router
|
||||
from app.auth.handlers import router as auth_router
|
||||
from app.user.root import init_root_user
|
||||
|
||||
|
||||
def main_router() -> APIRouter:
|
||||
|
|
@ -14,6 +15,7 @@ def main_router() -> APIRouter:
|
|||
|
||||
app = FastAPI(title="cognio ID API")
|
||||
|
||||
app.add_event_handler("startup", init_root_user)
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"],
|
||||
|
|
|
|||
|
|
@ -14,7 +14,11 @@ router = APIRouter()
|
|||
|
||||
|
||||
@router.post("", status_code=201, response_model=UserResourceModel)
|
||||
async def create_user(model: UserCreationModel, db: Session = Depends(get_db)) -> UserResourceModel:
|
||||
async def create_user(
|
||||
model: UserCreationModel,
|
||||
db: Session = Depends(get_db),
|
||||
auth_user: User = Depends(get_auth_user)
|
||||
) -> UserResourceModel:
|
||||
user = model.to_entity()
|
||||
created_user = user_service.create_user(db, user)
|
||||
return UserResourceModel.from_entity(created_user)
|
||||
|
|
|
|||
21
app/user/root.py
Normal file
21
app/user/root.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
from datetime import date
|
||||
|
||||
from app.config import config
|
||||
from app.db import session_factory
|
||||
from app.user import service as user_service
|
||||
from app.user.model import User
|
||||
|
||||
|
||||
def init_root_user():
|
||||
db = session_factory()
|
||||
root_user = user_service.get_user_by_username(db, "root")
|
||||
|
||||
if root_user is None:
|
||||
user_service.create_user(db, User(
|
||||
username="root",
|
||||
email=config["CGNO_ROOT_EMAIL"],
|
||||
password=config["CGNO_ROOT_PASSWORD"],
|
||||
given_name="Root",
|
||||
birthdate=date.today()
|
||||
))
|
||||
db.close()
|
||||
Loading…
Add table
Add a link
Reference in a new issue