mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 16:14:36 +00:00
54 lines
1.2 KiB
Python
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)
|