diff --git a/canaille/core/account.py b/canaille/core/account.py index 891e0e3a..20d19dca 100644 --- a/canaille/core/account.py +++ b/canaille/core/account.py @@ -527,7 +527,7 @@ def profile_settings(user, edited_user): if ( request.method == "GET" - or request.form.get("action") == "edit" + or request.form.get("action") == "edit-settings" or request_is_htmx() ): return profile_settings_edit(user, edited_user) @@ -630,7 +630,11 @@ def profile_settings_edit(editor, edited_user): ) form.process(CombinedMultiDict((request.files, request.form)) or None, data=data) - if request.form and request.form.get("action") == "edit" or request_is_htmx(): + if ( + request.form + and request.form.get("action") == "edit-settings" + or request_is_htmx() + ): if not form.validate(): flash(_("Profile edition failed."), "error") @@ -642,7 +646,7 @@ def profile_settings_edit(editor, edited_user): if ( "password1" in request.form and form["password1"].data - and request.form["action"] == "edit" + and request.form["action"] == "edit-settings" ): edited_user.set_password(form["password1"].data) diff --git a/canaille/templates/profile_add.html b/canaille/templates/profile_add.html index ec996ae1..c213d888 100644 --- a/canaille/templates/profile_add.html +++ b/canaille/templates/profile_add.html @@ -189,7 +189,7 @@
-
diff --git a/canaille/templates/profile_edit.html b/canaille/templates/profile_edit.html index bd098d6b..64af7298 100644 --- a/canaille/templates/profile_edit.html +++ b/canaille/templates/profile_edit.html @@ -162,7 +162,7 @@
-
diff --git a/canaille/templates/profile_settings.html b/canaille/templates/profile_settings.html index aec07ce4..684586f2 100644 --- a/canaille/templates/profile_settings.html +++ b/canaille/templates/profile_settings.html @@ -161,7 +161,7 @@ {% endif %} - diff --git a/tests/core/test_profile_creation.py b/tests/core/test_profile_creation.py index bf5c5057..47489af5 100644 --- a/tests/core/test_profile_creation.py +++ b/tests/core/test_profile_creation.py @@ -21,7 +21,7 @@ def test_user_creation_edition_and_deletion( res.form["password2"] = "totoyolo" # User have been created - res = res.form.submit(name="action", value="edit", status=302) + res = res.form.submit(name="action", value="create-profile", status=302) assert ("success", "User account creation succeed.") in res.flashes res = res.follow(status=200) george = models.User.get_from_login("george") @@ -39,11 +39,11 @@ def test_user_creation_edition_and_deletion( # User have been edited res = testclient.get("/profile/george", status=200) res.form["given_name"] = "Georgio" - res = res.form.submit(name="action", value="edit").follow() + res = res.form.submit(name="action", value="edit-profile").follow() res = testclient.get("/profile/george/settings", status=200) res.form["groups"] = [foo_group.id, bar_group.id] - res = res.form.submit(name="action", value="edit").follow() + res = res.form.submit(name="action", value="edit-settings").follow() george = models.User.get_from_login("george") assert "Georgio" == george.given_name[0] @@ -88,7 +88,7 @@ def test_user_creation_without_password(testclient, logged_moderator): res.form["family_name"] = "Abitbol" res.form["emails-0"] = "george@abitbol.com" - res = res.form.submit(name="action", value="edit", status=302) + res = res.form.submit(name="action", value="create-profile", status=302) assert ("success", "User account creation succeed.") in res.flashes res = res.follow(status=200) george = models.User.get_from_login("george") @@ -106,7 +106,7 @@ def test_user_creation_form_validation_failed( res.mustcontain(no="george") res = testclient.get("/profile", status=200) - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="create-profile") assert ("error", "User account creation failed.") in res.flashes assert models.User.get_from_login("george") is None @@ -118,7 +118,7 @@ def test_username_already_taken( res.form["user_name"] = "user" res.form["family_name"] = "foo" res.form["emails-0"] = "any@thing.com" - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="create-profile") assert ("error", "User account creation failed.") in res.flashes res.mustcontain("The login 'user' already exists") @@ -128,7 +128,7 @@ def test_email_already_taken(testclient, logged_moderator, user, foo_group, bar_ res.form["user_name"] = "user2" res.form["family_name"] = "foo" res.form["emails-0"] = "john@doe.com" - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="create-profile") assert ("error", "User account creation failed.") in res.flashes res.mustcontain("The email 'john@doe.com' is already used") @@ -140,7 +140,9 @@ def test_cn_setting_with_given_name_and_surname(testclient, logged_moderator): res.form["family_name"] = "Abitbol" res.form["emails-0"] = "george@abitbol.com" - res = res.form.submit(name="action", value="edit", status=302).follow(status=200) + res = res.form.submit(name="action", value="create-profile", status=302).follow( + status=200 + ) george = models.User.get_from_login("george") assert george.formatted_name[0] == "George Abitbol" @@ -153,7 +155,9 @@ def test_cn_setting_with_surname_only(testclient, logged_moderator): res.form["family_name"] = "Abitbol" res.form["emails-0"] = "george@abitbol.com" - res = res.form.submit(name="action", value="edit", status=302).follow(status=200) + res = res.form.submit(name="action", value="create-profile", status=302).follow( + status=200 + ) george = models.User.get_from_login("george") assert george.formatted_name[0] == "Abitbol" diff --git a/tests/core/test_profile_settings.py b/tests/core/test_profile_settings.py index eb5ee744..d6782693 100644 --- a/tests/core/test_profile_settings.py +++ b/tests/core/test_profile_settings.py @@ -23,7 +23,7 @@ def test_edition( assert "readonly" in res.form["user_name"].attrs res.form["user_name"] = "toto" - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("error", "Profile edition failed.")] logged_user.reload() @@ -65,7 +65,7 @@ def test_edition_without_groups( res = testclient.get("/profile/user/settings", status=200) testclient.app.config["ACL"]["DEFAULT"]["READ"] = [] - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("success", "Profile updated successfully.")] res = res.follow() @@ -84,7 +84,7 @@ def test_password_change(testclient, logged_user): res.form["password1"] = "new_password" res.form["password2"] = "new_password" - res = res.form.submit(name="action", value="edit").follow() + res = res.form.submit(name="action", value="edit-settings").follow() logged_user.reload() assert logged_user.check_password("new_password")[0] @@ -94,7 +94,7 @@ def test_password_change(testclient, logged_user): res.form["password1"] = "correct horse battery staple" res.form["password2"] = "correct horse battery staple" - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert ("success", "Profile updated successfully.") in res.flashes res = res.follow() @@ -108,7 +108,7 @@ def test_password_change_fail(testclient, logged_user): res.form["password1"] = "new_password" res.form["password2"] = "other_password" - res = res.form.submit(name="action", value="edit", status=200) + res = res.form.submit(name="action", value="edit-settings", status=200) logged_user.reload() assert logged_user.check_password("correct horse battery staple")[0] @@ -118,7 +118,7 @@ def test_password_change_fail(testclient, logged_user): res.form["password1"] = "new_password" res.form["password2"] = "" - res = res.form.submit(name="action", value="edit", status=200) + res = res.form.submit(name="action", value="edit-settings", status=200) logged_user.reload() assert logged_user.check_password("correct horse battery staple")[0] @@ -347,7 +347,7 @@ def test_past_lock_date( second=0, microsecond=0 ) - datetime.timedelta(days=30) res.form["lock_date"] = expiration_datetime.strftime("%Y-%m-%d %H:%M") - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("success", "Profile updated successfully.")] res = res.follow() @@ -370,7 +370,7 @@ def test_future_lock_date( second=0, microsecond=0 ) + datetime.timedelta(days=30) res.form["lock_date"] = expiration_datetime.strftime("%Y-%m-%d %H:%M") - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("success", "Profile updated successfully.")] res = res.follow() @@ -394,7 +394,7 @@ def test_empty_lock_date( res = testclient.get("/profile/user/settings", status=200) res.form["lock_date"] = "" - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("success", "Profile updated successfully.")] res = res.follow() @@ -416,7 +416,7 @@ def test_account_limit_values( microsecond=0, tzinfo=datetime.timezone.utc ) res.form["lock_date"] = expiration_datetime.strftime("%Y-%m-%d %H:%M:%S") - res = res.form.submit(name="action", value="edit") + res = res.form.submit(name="action", value="edit-settings") assert res.flashes == [("success", "Profile updated successfully.")] res = res.follow()