Fix /change-domain page permissions (#5939)
* Add test case * Fix change domain permissions * Update changelog * Add more comprehensive tests for other roles
This commit is contained in:
parent
d6673fbbd5
commit
c4ea07d8bc
|
|
@ -13,6 +13,7 @@ All notable changes to this project will be documented in this file.
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- To make internal stats API requests for password-protected shared links, shared link auth cookie must be set in the requests
|
- To make internal stats API requests for password-protected shared links, shared link auth cookie must be set in the requests
|
||||||
|
- Fix issue with site guests in Editor role and team members in Editor role not being able to change the domain of site
|
||||||
|
|
||||||
## v3.1.0 - 2025-11-13
|
## v3.1.0 - 2025-11-13
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ defmodule PlausibleWeb.Live.ChangeDomain do
|
||||||
site =
|
site =
|
||||||
Plausible.Sites.get_for_user!(socket.assigns.current_user, domain,
|
Plausible.Sites.get_for_user!(socket.assigns.current_user, domain,
|
||||||
roles: [
|
roles: [
|
||||||
|
:editor,
|
||||||
:owner,
|
:owner,
|
||||||
:admin,
|
:admin,
|
||||||
:super_admin
|
:super_admin
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,22 @@ defmodule PlausibleWeb.Live.ChangeDomainTest do
|
||||||
assert is_nil(site.domain_changed_from)
|
assert is_nil(site.domain_changed_from)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "successful form submission updates database", %{conn: conn, site: site} do
|
for {role, membership_type} <- [
|
||||||
|
{:editor, :site_guest},
|
||||||
|
{:editor, :team_member},
|
||||||
|
{:admin, :team_member},
|
||||||
|
{:owner, :team_member}
|
||||||
|
] do
|
||||||
|
test "#{Phoenix.Naming.humanize(membership_type)} with role #{role} can submit the form and it changes the record in the database",
|
||||||
|
%{conn: conn, user: user} do
|
||||||
|
site = new_site()
|
||||||
|
|
||||||
|
add_site_guest_or_team_member(site,
|
||||||
|
user: user,
|
||||||
|
role: unquote(role),
|
||||||
|
membership_type: unquote(membership_type)
|
||||||
|
)
|
||||||
|
|
||||||
original_domain = site.domain
|
original_domain = site.domain
|
||||||
new_domain = "new.#{site.domain}"
|
new_domain = "new.#{site.domain}"
|
||||||
{:ok, lv, _html} = live(conn, "/#{site.domain}/change-domain")
|
{:ok, lv, _html} = live(conn, "/#{site.domain}/change-domain")
|
||||||
|
|
@ -99,6 +114,7 @@ defmodule PlausibleWeb.Live.ChangeDomainTest do
|
||||||
assert site.domain == new_domain
|
assert site.domain == new_domain
|
||||||
assert site.domain_changed_from == original_domain
|
assert site.domain_changed_from == original_domain
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
test "successful form submission navigates to success page", %{conn: conn, site: site} do
|
test "successful form submission navigates to success page", %{conn: conn, site: site} do
|
||||||
on_ee do
|
on_ee do
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,13 @@ defmodule Plausible.Teams.Test do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_site_guest_or_team_member(site, args \\ []) do
|
||||||
|
case Keyword.pop!(args, :membership_type) do
|
||||||
|
{:site_guest, args} -> add_guest(site, args)
|
||||||
|
{:team_member, args} -> add_member(site.team, args)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def add_guest(site, args \\ []) do
|
def add_guest(site, args \\ []) do
|
||||||
user = Keyword.get(args, :user, new_user())
|
user = Keyword.get(args, :user, new_user())
|
||||||
role = Keyword.fetch!(args, :role)
|
role = Keyword.fetch!(args, :role)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue