Separate Web modules related to Federation
This commit is contained in:
@@ -11,7 +11,7 @@ defmodule Mobilizon.Actors do
|
||||
alias Mobilizon.Actors.{Actor, Bot, Follower, Member}
|
||||
alias Mobilizon.{Crypto, Events}
|
||||
alias Mobilizon.Media.File
|
||||
alias Mobilizon.Service.Workers.BackgroundWorker
|
||||
alias Mobilizon.Service.Workers
|
||||
alias Mobilizon.Storage.{Page, Repo}
|
||||
|
||||
alias Mobilizon.Federation.ActivityPub
|
||||
@@ -229,7 +229,7 @@ defmodule Mobilizon.Actors do
|
||||
end
|
||||
|
||||
def delete_actor(%Actor{} = actor) do
|
||||
BackgroundWorker.enqueue("delete_actor", %{"actor_id" => actor.id})
|
||||
Workers.Background.enqueue("delete_actor", %{"actor_id" => actor.id})
|
||||
end
|
||||
|
||||
@doc """
|
||||
|
||||
@@ -13,7 +13,6 @@ defmodule Mobilizon.Events do
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Addresses.Address
|
||||
alias Mobilizon.Service.Workers.BuildSearchWorker
|
||||
|
||||
alias Mobilizon.Events.{
|
||||
Comment,
|
||||
@@ -27,9 +26,12 @@ defmodule Mobilizon.Events do
|
||||
Track
|
||||
}
|
||||
|
||||
alias Mobilizon.Service.Workers
|
||||
alias Mobilizon.Storage.{Page, Repo}
|
||||
alias Mobilizon.Users.User
|
||||
|
||||
alias MobilizonWeb.Email
|
||||
|
||||
defenum(EventVisibility, :event_visibility, [
|
||||
:public,
|
||||
:unlisted,
|
||||
@@ -264,7 +266,7 @@ defmodule Mobilizon.Events do
|
||||
with {:ok, %{insert: %Event{} = event}} <- do_create_event(attrs),
|
||||
%Event{} = event <- Repo.preload(event, @event_preloads) do
|
||||
unless event.draft,
|
||||
do: BuildSearchWorker.enqueue(:insert_search_event, %{"event_id" => event.id})
|
||||
do: Workers.BuildSearch.enqueue(:insert_search_event, %{"event_id" => event.id})
|
||||
|
||||
{:ok, event}
|
||||
else
|
||||
@@ -308,10 +310,7 @@ defmodule Mobilizon.Events do
|
||||
Event.update_changeset(Repo.preload(old_event, :tags), attrs),
|
||||
{:ok, %{update: %Event{} = new_event}} <-
|
||||
Multi.new()
|
||||
|> Multi.update(
|
||||
:update,
|
||||
changeset
|
||||
)
|
||||
|> Multi.update(:update, changeset)
|
||||
|> Multi.run(:write, fn _repo, %{update: %Event{draft: draft} = event} ->
|
||||
with {:was_draft, true} <- {:was_draft, old_draft == true && draft == false},
|
||||
{:ok, %Participant{} = participant} <-
|
||||
@@ -332,14 +331,14 @@ defmodule Mobilizon.Events do
|
||||
|> Repo.transaction() do
|
||||
Cachex.del(:ics, "event_#{new_event.uuid}")
|
||||
|
||||
Mobilizon.Service.Events.Tool.calculate_event_diff_and_send_notifications(
|
||||
Email.Events.calculate_event_diff_and_send_notifications(
|
||||
old_event,
|
||||
new_event,
|
||||
changes
|
||||
)
|
||||
|
||||
unless new_event.draft,
|
||||
do: BuildSearchWorker.enqueue(:update_search_event, %{"event_id" => new_event.id})
|
||||
do: BuildSearch.enqueue(:update_search_event, %{"event_id" => new_event.id})
|
||||
|
||||
{:ok, Repo.preload(new_event, @event_preloads)}
|
||||
end
|
||||
|
||||
9
lib/mobilizon/users/guards.ex
Normal file
9
lib/mobilizon/users/guards.ex
Normal file
@@ -0,0 +1,9 @@
|
||||
defmodule Mobilizon.Users.Guards do
|
||||
@moduledoc """
|
||||
Guards for users
|
||||
"""
|
||||
|
||||
defguard is_admin(role) when is_atom(role) and role == :administrator
|
||||
|
||||
defguard is_moderator(role) when is_atom(role) and role in [:administrator, :moderator]
|
||||
end
|
||||
@@ -10,9 +10,10 @@ defmodule Mobilizon.Users.User do
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Crypto
|
||||
alias Mobilizon.Events.FeedToken
|
||||
alias Mobilizon.Service.EmailChecker
|
||||
alias Mobilizon.Users.UserRole
|
||||
|
||||
alias MobilizonWeb.Email
|
||||
|
||||
@type t :: %__MODULE__{
|
||||
email: String.t(),
|
||||
password_hash: String.t(),
|
||||
@@ -176,7 +177,7 @@ defmodule Mobilizon.Users.User do
|
||||
|
||||
case changeset do
|
||||
%Ecto.Changeset{valid?: true, changes: %{email: email}} ->
|
||||
case EmailChecker.valid?(email) do
|
||||
case Email.Checker.valid?(email) do
|
||||
false ->
|
||||
add_error(changeset, :email, "Email doesn't fit required format")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user