From 222acacff545816de1978b171f0e7a178d2934e2 Mon Sep 17 00:00:00 2001 From: cube Date: Tue, 19 May 2026 22:31:12 +0100 Subject: [PATCH] fix #79 --- myriad/__init__.py | 3 +++ myriad/commands.py | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 myriad/commands.py diff --git a/myriad/__init__.py b/myriad/__init__.py index 648970b..d36721f 100644 --- a/myriad/__init__.py +++ b/myriad/__init__.py @@ -22,6 +22,9 @@ def create_app(): from . import db db.init_app(app) + from . import commands + commands.init_commands(app) + from . import auth app.register_blueprint(auth.bp) diff --git a/myriad/commands.py b/myriad/commands.py new file mode 100644 index 0000000..849b61e --- /dev/null +++ b/myriad/commands.py @@ -0,0 +1,36 @@ +import click +from myriad.db import get_db +from werkzeug.security import generate_password_hash + + +@click.command('register-admin') +@click.option("--username", prompt="Username") +@click.option("--password", prompt="Password") +def register_admin_command(username, password): + """Register an admin account.""" + + db = get_db() + + valid = True + if not username.strip(): + click.echo("Must enter a username") + valid = False + if not password.strip(): + click.echo("Must enter a password") + valid = False + + if not valid: + return + + try: + db.execute("INSERT INTO user (username, password) VALUES (?, ?)",(username, generate_password_hash(password)),) + db.commit() + except db.IntegrityError: + click.echo(f"User {username} is already registered.") + return + + click.echo('Admin account registered') + + +def init_commands(app): + app.cli.add_command(register_admin_command) \ No newline at end of file