diff --git a/umap/static/umap/js/umap.js b/umap/static/umap/js/umap.js index 77e97aa6..87ff4e1d 100644 --- a/umap/static/umap/js/umap.js +++ b/umap/static/umap/js/umap.js @@ -264,7 +264,14 @@ L.U.Map.include({ this.onceDataLoaded(function () { const slug = L.Util.queryString('feature') if (slug && this.features_index[slug]) this.features_index[slug].view() - if (L.Util.queryString('edit')) this.enableEdit() + if (L.Util.queryString('edit')) { + if (this.hasEditMode()) this.enableEdit() + // Sometimes users share the ?edit link by mistake, let's remove + // this search parameter from URL to prevent this + const url = new URL(window.location) + url.searchParams.delete('edit') + history.pushState({}, '', url) + } if (L.Util.queryString('download')) this.download() }) diff --git a/umap/tests/integration/test_owned_map.py b/umap/tests/integration/test_owned_map.py index 2395edd5..c1a89773 100644 --- a/umap/tests/integration/test_owned_map.py +++ b/umap/tests/integration/test_owned_map.py @@ -94,6 +94,8 @@ def test_owner_permissions_form(map, datalayer, live_server, login): ".datalayer-permissions select[name='edit_status'] option:checked" ) expect(option).to_have_text("Inherit") + # Should have been removed since page load + assert "edit" not in page.url def test_map_update_with_editor(map, live_server, login, user):