create default avatar, admin, and deleted user on first run
This commit is contained in:
@ -1,6 +1,43 @@
|
||||
from flask import Flask
|
||||
from dotenv import load_dotenv
|
||||
from .models import Avatars, Users
|
||||
from .auth import digest
|
||||
from .constants import PermissionLevel
|
||||
import os
|
||||
import time
|
||||
import secrets
|
||||
|
||||
def create_default_avatar():
|
||||
if Avatars.count() == 0:
|
||||
print("Creating default avatar reference")
|
||||
Avatars.create({
|
||||
"file_path": "/static/avatars/default.webp",
|
||||
"uploaded_at": int(time.time())
|
||||
})
|
||||
|
||||
def create_admin():
|
||||
username = "admin"
|
||||
if Users.count({"username": username}) == 0:
|
||||
print("!!!!!Creating admin account!!!!!")
|
||||
password_length = 16
|
||||
password = secrets.token_urlsafe(password_length)
|
||||
hashed = digest(password)
|
||||
Users.create({
|
||||
"username": username,
|
||||
"password_hash": hashed,
|
||||
"permission": PermissionLevel.ADMIN.value,
|
||||
})
|
||||
print(f"!!!!!Administrator account created, use '{username}' as the login and '{password}' as the password. This will only be shown once!!!!!")
|
||||
|
||||
def create_deleted_user():
|
||||
username = "DeletedUser"
|
||||
if Users.count({"username": username}) == 0:
|
||||
print("Creating DeletedUser")
|
||||
Users.create({
|
||||
"username": username,
|
||||
"password_hash": "",
|
||||
"permission": PermissionLevel.SYSTEM.value,
|
||||
})
|
||||
|
||||
def create_app():
|
||||
app = Flask(__name__)
|
||||
@ -22,6 +59,10 @@ def create_app():
|
||||
create_tables()
|
||||
run_migrations()
|
||||
|
||||
create_default_avatar()
|
||||
create_admin()
|
||||
create_deleted_user()
|
||||
|
||||
from app.routes.app import bp as app_bp
|
||||
app.register_blueprint(app_bp)
|
||||
|
||||
|
Reference in New Issue
Block a user