fix #79
This commit is contained in:
@@ -22,6 +22,9 @@ def create_app():
|
|||||||
from . import db
|
from . import db
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
|
|
||||||
|
from . import commands
|
||||||
|
commands.init_commands(app)
|
||||||
|
|
||||||
from . import auth
|
from . import auth
|
||||||
app.register_blueprint(auth.bp)
|
app.register_blueprint(auth.bp)
|
||||||
|
|
||||||
|
|||||||
36
myriad/commands.py
Normal file
36
myriad/commands.py
Normal file
@@ -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)
|
||||||
Reference in New Issue
Block a user