From 4d24962544828241e089888eed7e5c3d93b2fd20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Blondon?= Date: Fri, 7 Jan 2022 15:19:05 +0100 Subject: [PATCH] surname is required when the user is created or updated --- canaille/forms.py | 1 + canaille/templates/profile.html | 2 +- tests/test_profile.py | 13 +++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/canaille/forms.py b/canaille/forms.py index 3f4177e4..e18b4089 100644 --- a/canaille/forms.py +++ b/canaille/forms.py @@ -106,6 +106,7 @@ PROFILE_FORM_FIELDS = dict( ), sn=wtforms.StringField( _("Family Name"), + validators=[wtforms.validators.DataRequired()], render_kw={ "placeholder": _("Doe"), "spellcheck": "false", diff --git a/canaille/templates/profile.html b/canaille/templates/profile.html index a1cced44..a4885ff5 100644 --- a/canaille/templates/profile.html +++ b/canaille/templates/profile.html @@ -13,7 +13,7 @@ {% elif edited_user.uid == user.uid or lock_indicator or noindicator %} {{ sui.render_field(field, **kwargs) }} {% elif field.name in edited_user.write %} - {{ sui.render_field(field, noindicator=true, **kwargs) }} + {{ sui.render_field(field, **kwargs) }} {% elif field.name in edited_user.read %} {{ sui.render_field(field, indicator_icon="eye", indicator_text=_("This user cannot edit this field"), **kwargs) }} {% else %} diff --git a/tests/test_profile.py b/tests/test_profile.py index b3f2e220..618ca041 100644 --- a/tests/test_profile.py +++ b/tests/test_profile.py @@ -154,6 +154,19 @@ def test_bad_email(testclient, slapd_connection, logged_user): assert ["john@doe.com"] == logged_user.mail +def test_surname_is_mandatory(testclient, slapd_connection, logged_user): + res = testclient.get("/profile/user", status=200) + logged_user.sn = ["Doe"] + + res.form["sn"] = "" + + res = res.form.submit(name="action", value="edit", status=200) + + logged_user.reload(slapd_connection) + + assert ["Doe"] == logged_user.sn + + def test_password_change(testclient, slapd_connection, logged_user): res = testclient.get("/profile/user", status=200)