test: adapt tests to reflect implementation details
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
5e0b6580ae
commit
9991291b2f
7 changed files with 98 additions and 71 deletions
|
|
@ -28,8 +28,13 @@ defmodule MvWeb.GroupLive.Form do
|
|||
resource = Mv.Membership.Group
|
||||
|
||||
if can?(actor, action, resource) do
|
||||
socket = load_group_for_form(socket, params, actor)
|
||||
{:ok, assign_form(socket)}
|
||||
case load_group_for_form(socket, params, actor) do
|
||||
{:redirect, socket} ->
|
||||
{:ok, socket}
|
||||
|
||||
{:ok, socket} ->
|
||||
{:ok, assign_form(socket)}
|
||||
end
|
||||
else
|
||||
{:ok, redirect(socket, to: ~p"/groups")}
|
||||
end
|
||||
|
|
@ -39,10 +44,13 @@ defmodule MvWeb.GroupLive.Form do
|
|||
case params["slug"] do
|
||||
nil ->
|
||||
# New group
|
||||
socket
|
||||
|> assign(:group, nil)
|
||||
|> assign(:page_title, gettext("Create Group"))
|
||||
|> assign(:return_to, "index")
|
||||
socket =
|
||||
socket
|
||||
|> assign(:group, nil)
|
||||
|> assign(:page_title, gettext("Create Group"))
|
||||
|> assign(:return_to, "index")
|
||||
|
||||
{:ok, socket}
|
||||
|
||||
slug ->
|
||||
# Edit existing group
|
||||
|
|
@ -53,20 +61,29 @@ defmodule MvWeb.GroupLive.Form do
|
|||
defp load_existing_group(socket, slug, actor) do
|
||||
case Membership.get_group_by_slug(slug, actor: actor) do
|
||||
{:ok, nil} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Group not found."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
socket =
|
||||
socket
|
||||
|> put_flash(:error, gettext("Group not found."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
|
||||
{:redirect, socket}
|
||||
|
||||
{:ok, group} ->
|
||||
socket
|
||||
|> assign(:group, group)
|
||||
|> assign(:page_title, gettext("Edit Group"))
|
||||
|> assign(:return_to, "show")
|
||||
socket =
|
||||
socket
|
||||
|> assign(:group, group)
|
||||
|> assign(:page_title, gettext("Edit Group"))
|
||||
|> assign(:return_to, "show")
|
||||
|
||||
{:ok, socket}
|
||||
|
||||
{:error, _error} ->
|
||||
socket
|
||||
|> put_flash(:error, gettext("Failed to load group."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
socket =
|
||||
socket
|
||||
|> put_flash(:error, gettext("Failed to load group."))
|
||||
|> redirect(to: ~p"/groups")
|
||||
|
||||
{:redirect, socket}
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -174,7 +191,7 @@ defmodule MvWeb.GroupLive.Form do
|
|||
defp notify_parent(msg), do: send(self(), {__MODULE__, msg})
|
||||
|
||||
defp assign_form(%{assigns: assigns} = socket) do
|
||||
group = assigns.group
|
||||
group = Map.get(assigns, :group)
|
||||
actor = assigns.current_user
|
||||
|
||||
form =
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ defmodule MvWeb.GroupLive.Index do
|
|||
def mount(_params, _session, socket) do
|
||||
actor = current_actor(socket)
|
||||
|
||||
# Check if user can read groups
|
||||
if can?(actor, :read, Mv.Membership.Group) do
|
||||
# Check if user can access the groups page (page permission check)
|
||||
if can_access_page?(actor, "/groups") do
|
||||
groups = load_groups(actor)
|
||||
|
||||
{:ok,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue