Some fixes

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-10-11 17:13:57 +02:00
parent d58ca5743d
commit 62af1e72d6
5 changed files with 54 additions and 27 deletions

View File

@@ -266,15 +266,9 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
%{organizer_actor_id: organizer_actor_id} = args,
%{context: %{current_user: %User{} = user}} = _resolution
) do
if Config.only_groups_can_create_events?() and Map.get(args, :attributed_to_id) == nil do
{:error,
dgettext(
"errors",
"Only groups can create events"
)}
else
case User.owns_actor(user, organizer_actor_id) do
{:is_owned, %Actor{} = organizer_actor} ->
case User.owns_actor(user, organizer_actor_id) do
{:is_owned, %Actor{} = organizer_actor} ->
if can_create_event?(args) do
if is_organizer_group_member?(args) do
args_with_organizer =
args |> Map.put(:organizer_actor, organizer_actor) |> extract_timezone(user.id)
@@ -302,10 +296,16 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
"Organizer profile doesn't have permission to create an event on behalf of this group"
)}
end
else
{:error,
dgettext(
"errors",
"Only groups can create events"
)}
end
{:is_owned, nil} ->
{:error, dgettext("errors", "Organizer profile is not owned by the user")}
end
{:is_owned, nil} ->
{:error, dgettext("errors", "Organizer profile is not owned by the user")}
end
end
@@ -313,6 +313,15 @@ defmodule Mobilizon.GraphQL.Resolvers.Event do
{:error, dgettext("errors", "You need to be logged-in to create events")}
end
@spec can_create_event?(map()) :: boolean()
defp can_create_event?(args) do
if Config.only_groups_can_create_events?() do
Map.get(args, :attributed_to_id) != nil
else
true
end
end
@doc """
Update an event
"""