From ffaa8cd1a6bb012495880f15298d7beb3e5e8b34 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 25 Feb 2019 12:04:07 +0000 Subject: [PATCH] =?UTF-8?q?Don=E2=80=99t=20error=20if=20email=20address=20?= =?UTF-8?q?hasn=E2=80=99t=20changed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When updating a user’s email address you currently get an validation error if you save without changing it. Instead it should just obey your command. And no need for the confirmation step because nothing is actually changing. --- app/main/views/manage_users.py | 4 ++++ tests/app/main/views/test_manage_users.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/app/main/views/manage_users.py b/app/main/views/manage_users.py index e2a8cf785..b27eee8e7 100644 --- a/app/main/views/manage_users.py +++ b/app/main/views/manage_users.py @@ -146,6 +146,10 @@ def edit_user_email(service_id, user_id): return user_api_client.is_email_already_in_use(email) form = ChangeEmailForm(_is_email_already_in_use, email_address=user_email) + + if request.form.get('email_address', '').strip() == user_email: + return redirect(url_for('.manage_users', service_id=current_service.id)) + if form.validate_on_submit(): session['team_member_email_change'] = form.email_address.data diff --git a/tests/app/main/views/test_manage_users.py b/tests/app/main/views/test_manage_users.py index 162f81b1f..93914b79c 100644 --- a/tests/app/main/views/test_manage_users.py +++ b/tests/app/main/views/test_manage_users.py @@ -813,6 +813,29 @@ def test_edit_user_email_redirects_to_confirmation( ) +def test_edit_user_email_without_changing_goes_back_to_team_members( + client_request, + active_user_with_permissions, + mock_get_user, + mock_update_user_attribute, +): + client_request.post( + 'main.edit_user_email', + service_id=SERVICE_ONE_ID, + user_id=active_user_with_permissions.id, + _data={ + 'email_address': active_user_with_permissions.email_address + }, + _expected_status=302, + _expected_redirect=url_for( + 'main.manage_users', + service_id=SERVICE_ONE_ID, + _external=True + ), + ) + assert mock_update_user_attribute.called is False + + def test_confirm_edit_user_email_page( logged_in_client, active_user_with_permissions,