+ Dans ScoDoc on ne supprime pas les utilisateurs mais on les rend inactifs:
+ ils n'apparaissent plus dans les listes et ne peuvent plus se connecter.
+
+ Ces utilisateurs peuvent être réactivés à tout moment.
+
+
+
+ {{ wtf.quick_form(form) }}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/views/users.py b/app/views/users.py
index b025e870e7..1d150fe201 100644
--- a/app/views/users.py
+++ b/app/views/users.py
@@ -38,11 +38,13 @@ import re
from xml.etree import ElementTree
import flask
-from flask import g, url_for
+from flask import g, url_for, request
+from flask import redirect, render_template
from flask_login import current_user
from app import db
+from app.auth.forms import DeactivateUserForm
from app.auth.models import Permission
from app.auth.models import User
from app.auth.models import Role
@@ -210,7 +212,8 @@ def create_user_form(REQUEST, user_name=None, edit=0):
"title": "Mot de passe",
"input_type": "password",
"size": 14,
- "allow_null": False,
+ "allow_null": True,
+ "explanation": "optionnel, l'utilisateur pourra le saisir avec son mail",
},
),
(
@@ -219,7 +222,7 @@ def create_user_form(REQUEST, user_name=None, edit=0):
"title": "Confirmer mot de passe",
"input_type": "password",
"size": 14,
- "allow_null": False,
+ "allow_null": True,
},
),
]
@@ -237,9 +240,9 @@ def create_user_form(REQUEST, user_name=None, edit=0):
{
"title": "e-mail",
"input_type": "text",
- "explanation": "vivement recommandé: utilisé pour contacter l'utilisateur",
+ "explanation": "requis, doit fonctionner",
"size": 20,
- "allow_null": True,
+ "allow_null": False,
},
)
]
@@ -437,14 +440,17 @@ def create_user_form(REQUEST, user_name=None, edit=0):
)
return "\n".join(H) + msg + "\n" + tf[1] + F
# check passwords
- if vals["passwd"] != vals["passwd2"]:
- msg = tf_error_message(
- """Les deux mots de passes ne correspondent pas !"""
- )
- return "\n".join(H) + msg + "\n" + tf[1] + F
- if not sco_users.is_valid_password(vals["passwd"]):
- msg = tf_error_message("""Mot de passe trop simple, recommencez !""")
- return "\n".join(H) + msg + "\n" + tf[1] + F
+ if vals["passwd"]:
+ if vals["passwd"] != vals["passwd2"]:
+ msg = tf_error_message(
+ """Les deux mots de passes ne correspondent pas !"""
+ )
+ return "\n".join(H) + msg + "\n" + tf[1] + F
+ if not sco_users.is_valid_password(vals["passwd"]):
+ msg = tf_error_message(
+ """Mot de passe trop simple, recommencez !"""
+ )
+ return "\n".join(H) + msg + "\n" + tf[1] + F
if not can_choose_dept:
vals["dept"] = auth_dept
# ok, go
@@ -457,8 +463,12 @@ def create_user_form(REQUEST, user_name=None, edit=0):
db.session.add(u)
db.session.commit()
return flask.redirect(
- "user_info_page?user_name=%s&head_message=Nouvel utilisateur créé"
- % (user_name)
+ url_for(
+ "users.user_info_page",
+ scodoc_dept=g.scodoc_dept,
+ user_name=user_name,
+ head_message="Nouvel utilisateur créé",
+ )
)
@@ -611,7 +621,9 @@ def form_change_password(REQUEST, user_name=None):