From 9cdb8861a771f44e63c6c753f94ee394a6129bab Mon Sep 17 00:00:00 2001 From: kaiyou <pierre@jaury.eu> Date: Wed, 11 Dec 2019 16:20:43 +0100 Subject: [PATCH] Add an api for creating and promoting users --- hiboo/user/__init__.py | 2 +- hiboo/user/cli.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 hiboo/user/cli.py diff --git a/hiboo/user/__init__.py b/hiboo/user/__init__.py index 28fb9247..01bc3798 100644 --- a/hiboo/user/__init__.py +++ b/hiboo/user/__init__.py @@ -4,7 +4,7 @@ import flask blueprint = flask.Blueprint("user", __name__, template_folder="templates") from hiboo import models, utils -from hiboo.user import users +from hiboo.user import users, cli def get_user(**redirect_args): diff --git a/hiboo/user/cli.py b/hiboo/user/cli.py new file mode 100644 index 00000000..43965071 --- /dev/null +++ b/hiboo/user/cli.py @@ -0,0 +1,29 @@ +from hiboo.user import blueprint +from hiboo import models + +import click + + +@blueprint.cli.command() +@click.argument("username") +@click.argument("password") +def create(username, password): + assert not models.User.query.filter_by(username=username).first() + auth = models.Auth() + auth.set_password(password) + user = models.User( + username=username, + auths=[auth] + ) + models.db.session.add(auth) + models.db.session.add(user) + models.db.session.commit() + + +@blueprint.cli.command() +@click.argument("username") +def promote(username): + user = models.User.query.filter_by(username=username).first() + assert user + user.is_admin = True + models.db.session.commit() -- GitLab