aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2020-09-15 18:07:28 +0400
committerEgor Kislitsyn <egor@kislitsyn.com>2020-10-07 18:34:30 +0400
commit27bc121ec00a7b088030d6fb36c7e731f5b072b6 (patch)
tree343509c8c2aa99ca3882e7e979598e08e94adeac /lib
parent386199063b9be9fc30ad403f6afb03bf6ca47298 (diff)
downloadpleroma-27bc121ec00a7b088030d6fb36c7e731f5b072b6.tar.gz
Require email
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/backup.ex19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/pleroma/backup.ex b/lib/pleroma/backup.ex
index ce54a413a..3b85dd1c1 100644
--- a/lib/pleroma/backup.ex
+++ b/lib/pleroma/backup.ex
@@ -31,7 +31,9 @@ defmodule Pleroma.Backup do
end
def create(user) do
- with :ok <- validate_limit(user),
+ with :ok <- validate_email_enabled(),
+ :ok <- validate_user_email(user),
+ :ok <- validate_limit(user),
{:ok, backup} <- user |> new() |> Repo.insert() do
BackupWorker.process(backup)
end
@@ -74,6 +76,17 @@ defmodule Pleroma.Backup do
end
end
+ defp validate_email_enabled do
+ if Pleroma.Config.get([Pleroma.Emails.Mailer, :enabled]) do
+ :ok
+ else
+ {:error, "Backups require enabled email"}
+ end
+ end
+
+ defp validate_user_email(%User{email: nil}), do: {:error, "Email is required"}
+ defp validate_user_email(%User{email: email}) when is_binary(email), do: :ok
+
def get_last(user_id) do
__MODULE__
|> where(user_id: ^user_id)
@@ -100,7 +113,7 @@ defmodule Pleroma.Backup do
def get(id), do: Repo.get(__MODULE__, id)
def process(%__MODULE__{} = backup) do
- with {:ok, zip_file} <- zip(backup),
+ with {:ok, zip_file} <- export(backup),
{:ok, %{size: size}} <- File.stat(zip_file),
{:ok, _upload} <- upload(backup, zip_file) do
backup
@@ -110,7 +123,7 @@ defmodule Pleroma.Backup do
end
@files ['actor.json', 'outbox.json', 'likes.json', 'bookmarks.json']
- def zip(%__MODULE__{} = backup) do
+ def export(%__MODULE__{} = backup) do
backup = Repo.preload(backup, :user)
name = String.trim_trailing(backup.file_name, ".zip")
dir = Path.join(System.tmp_dir!(), name)