diff --git a/app/main/views/organisations.py b/app/main/views/organisations.py index 5e6aef6bb..ac88afe37 100644 --- a/app/main/views/organisations.py +++ b/app/main/views/organisations.py @@ -329,6 +329,10 @@ def edit_organisation_name(org_id): form.name.data = current_organisation.name if form.validate_on_submit(): + + if form.name.data == current_organisation.name: + return redirect(url_for('.organisation_settings', org_id=current_organisation.id)) + unique_name = organisations_client.is_organisation_name_unique(org_id, form.name.data) if not unique_name: form.name.errors.append("This organisation name is already in use") diff --git a/tests/app/main/views/organisations/test_organisations.py b/tests/app/main/views/organisations/test_organisations.py index 63c80c84f..fd3ee85c8 100644 --- a/tests/app/main/views/organisations/test_organisations.py +++ b/tests/app/main/views/organisations/test_organisations.py @@ -1315,6 +1315,25 @@ def test_confirm_update_organisation_with_incorrect_password( ) == 'Error: Invalid password' +def test_confirm_update_organisation_with_existing_name( + client_request, + platform_admin_user, + fake_uuid, + mock_get_organisation, +): + client_request.login(platform_admin_user) + client_request.post( + '.edit_organisation_name', + org_id=fake_uuid, + _data={'name': 'Test organisation'}, + _expected_redirect=url_for( + '.organisation_settings', + org_id=fake_uuid, + _external=True, + ) + ) + + def test_confirm_update_organisation_with_name_already_in_use( client_request, platform_admin_user,