You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
703 B
25 lines
703 B
from flask import Flask
|
|
from monsun_backend import models
|
|
|
|
from ..container import get_initialize_container
|
|
|
|
|
|
def init_app(app: Flask):
|
|
app.before_first_request(make_admin_user)
|
|
|
|
|
|
def make_admin_user() -> models.User:
|
|
"""Makes the admin user if he does not exist
|
|
|
|
The admin is always the first user (id==1)
|
|
"""
|
|
container = get_initialize_container()
|
|
admin_user: models.User = models.user_datastore.get_user(identifier=1)
|
|
if admin_user is None:
|
|
admin_user = models.user_datastore.create_user(
|
|
email=container.config.admin_user_email(),
|
|
password=container.config.admin_user_password(),
|
|
)
|
|
admin_user.save()
|
|
|
|
return admin_user
|
|
|