2021-09-02 11:31:23 +02:00

54 lines
1.2 KiB
Python

import json
import click
from flask.cli import AppGroup
from flask_security.confirmable import confirm_user
from project import app, db
from project.services.user import (
add_admin_roles_to_user,
create_user,
find_user_by_email,
)
user_cli = AppGroup("user")
@user_cli.command("add-admin-roles")
@click.argument("email")
def add_admin_roles(email):
add_admin_roles_to_user(email)
db.session.commit()
click.echo(f"Admin roles were added to {email}.")
@user_cli.command("create")
@click.argument("email")
@click.argument("password")
@click.option("--confirm/--no-confirm", default=False)
@click.option("--admin/--no-admin", default=False)
def create(email, password, confirm, admin):
user = create_user(email, password)
if confirm:
confirm_user(user)
if admin:
add_admin_roles_to_user(email)
db.session.commit()
result = {"user_id": user.id}
click.echo(json.dumps(result))
@user_cli.command("confirm")
@click.argument("email")
def confirm(email):
user = find_user_by_email(email)
confirm_user(user)
db.session.commit()
click.echo(f"Confirmed user {email}.")
app.cli.add_command(user_cli)