forked from ScoDoc/ScoDoc
creation super admin en ligne de commande
This commit is contained in:
parent
ade9b2720d
commit
dc77cdcc68
@ -104,6 +104,9 @@ ou mieux, importer les utilisateurs de ScoDoc7 avec:
|
|||||||
|
|
||||||
(la base `SCOUSERS` de ScoDoc7 n'est pas affectée, ScoDoc8 utilise une base séparée, nommée `SCO8USERS`).
|
(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
|
### Bidouilles temporaires
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ SCO_ROLES_DEFAULTS = {
|
|||||||
p.ScoEtudChangeAdr,
|
p.ScoEtudChangeAdr,
|
||||||
),
|
),
|
||||||
# Admin est le chef du département, pas le "super admin"
|
# 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": (
|
"Admin": (
|
||||||
p.ScoObservateur,
|
p.ScoObservateur,
|
||||||
p.ScoView,
|
p.ScoView,
|
||||||
@ -54,5 +54,6 @@ SCO_ROLES_DEFAULTS = {
|
|||||||
),
|
),
|
||||||
# Super Admin est un root: création/suppression de départements
|
# Super Admin est un root: création/suppression de départements
|
||||||
# _tous_ les droits
|
# _tous_ les droits
|
||||||
|
# Afin d'avoir tous les droits, il ne doit pas être asscoié à un département
|
||||||
"SuperAdmin": p.ALL_PERMISSIONS,
|
"SuperAdmin": p.ALL_PERMISSIONS,
|
||||||
}
|
}
|
||||||
|
10
scodoc.py
10
scodoc.py
@ -85,16 +85,18 @@ def _clear_users_db():
|
|||||||
@click.argument("username")
|
@click.argument("username")
|
||||||
@click.argument("role")
|
@click.argument("role")
|
||||||
@click.argument("dept")
|
@click.argument("dept")
|
||||||
def user_create(username, role, dept):
|
def user_create(username, role, dept): # user-create
|
||||||
"Create a new user"
|
"Create a new user"
|
||||||
r = Role.get_named_role(role)
|
r = Role.get_named_role(role)
|
||||||
if not r:
|
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
|
return 1
|
||||||
u = User.query.filter_by(user_name=username).first()
|
u = User.query.filter_by(user_name=username).first()
|
||||||
if u:
|
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
|
return 2
|
||||||
|
if dept == "@all":
|
||||||
|
dept = None
|
||||||
u = User(user_name=username, dept=dept)
|
u = User(user_name=username, dept=dept)
|
||||||
u.add_role(r, dept)
|
u.add_role(r, dept)
|
||||||
db.session.add(u)
|
db.session.add(u)
|
||||||
@ -109,7 +111,7 @@ def user_create(username, role, dept):
|
|||||||
@app.cli.command()
|
@app.cli.command()
|
||||||
@click.argument("username")
|
@click.argument("username")
|
||||||
@click.password_option()
|
@click.password_option()
|
||||||
def user_password(username, password=None):
|
def user_password(username, password=None): # user-password
|
||||||
"Set (or change) user's password"
|
"Set (or change) user's password"
|
||||||
if not password:
|
if not password:
|
||||||
sys.stderr.write("user_password: missing password")
|
sys.stderr.write("user_password: missing password")
|
||||||
|
Loading…
Reference in New Issue
Block a user