36 lines
956 B
Python
36 lines
956 B
Python
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) |