Require email
This commit is contained in:
parent
386199063b
commit
27bc121ec0
3 changed files with 33 additions and 5 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue