creation super admin en ligne de commande

This commit is contained in:
Emmanuel Viennet 2021-07-05 21:56:28 +02:00
parent ade9b2720d
commit dc77cdcc68
3 changed files with 12 additions and 6 deletions

View File

@ -103,7 +103,10 @@ ou mieux, importer les utilisateurs de ScoDoc7 avec:
flask user-db-import-scodoc7
(la base `SCOUSERS` de ScoDoc7 n'est pas affectée, ScoDoc8 utilise une base séparée, nommée `SCO8USERS`).
Pour créer un utilisateur "super admin", c'est à dire admin dans tous les départements:
flask user-create admin1 SuperAdmin @all
### Bidouilles temporaires

View File

@ -30,7 +30,7 @@ SCO_ROLES_DEFAULTS = {
p.ScoEtudChangeAdr,
),
# Admin est le chef du département, pas le "super admin"
# on dit donc lister toutes ses permissions:
# on doit donc lister toutes ses permissions:
"Admin": (
p.ScoObservateur,
p.ScoView,
@ -54,5 +54,6 @@ SCO_ROLES_DEFAULTS = {
),
# Super Admin est un root: création/suppression de départements
# _tous_ les droits
# Afin d'avoir tous les droits, il ne doit pas être asscoié à un département
"SuperAdmin": p.ALL_PERMISSIONS,
}

View File

@ -85,16 +85,18 @@ def _clear_users_db():
@click.argument("username")
@click.argument("role")
@click.argument("dept")
def user_create(username, role, dept):
def user_create(username, role, dept): # user-create
"Create a new user"
r = Role.get_named_role(role)
if not r:
sys.stderr.write("user_create: role {r} does not exists".format(r=r))
sys.stderr.write("user_create: role {r} does not exists\n".format(r=role))
return 1
u = User.query.filter_by(user_name=username).first()
if u:
sys.stderr.write("user_create: user {u} already exists".format(u=u))
sys.stderr.write("user_create: user {u} already exists\n".format(u=u))
return 2
if dept == "@all":
dept = None
u = User(user_name=username, dept=dept)
u.add_role(r, dept)
db.session.add(u)
@ -109,7 +111,7 @@ def user_create(username, role, dept):
@app.cli.command()
@click.argument("username")
@click.password_option()
def user_password(username, password=None):
def user_password(username, password=None): # user-password
"Set (or change) user's password"
if not password:
sys.stderr.write("user_password: missing password")