diff options
author | lain <lain@soykaf.club> | 2020-03-04 12:43:06 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-03-04 12:43:06 +0000 |
commit | 6f7a8c43a200d2d0166e4e544aee1e6104bcb671 (patch) | |
tree | c3942b6a54f5768b5f3efa6f0e9aa1ea2f40d281 /lib | |
parent | 5992c256ad7c5bc8207240c9d51e03964e50eb64 (diff) | |
parent | cb60a9c42f48f0b9df1681f9cba229b21eb6095c (diff) | |
download | pleroma-6f7a8c43a200d2d0166e4e544aee1e6104bcb671.tar.gz |
Merge branch 'fix/no-email-no-fail' into 'develop'
Do not fail when user has no email
See merge request pleroma/pleroma!2249
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 4 | ||||
-rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api.ex | 6 | ||||
-rw-r--r-- | lib/pleroma/workers/cron/digest_emails_worker.ex | 1 | ||||
-rw-r--r-- | lib/pleroma/workers/cron/new_users_digest_worker.ex | 1 |
4 files changed, 10 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 04b853dcf..d9f74b6a4 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -660,7 +660,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do {:ok, activity} <- insert(flag_data, local), {:ok, stripped_activity} <- strip_report_status_data(activity), :ok <- maybe_federate(stripped_activity) do - Enum.each(User.all_superusers(), fn superuser -> + User.all_superusers() + |> Enum.filter(fn user -> not is_nil(user.email) end) + |> Enum.each(fn superuser -> superuser |> Pleroma.Emails.AdminEmail.report(actor, account, statuses, content) |> Pleroma.Emails.Mailer.deliver_async() diff --git a/lib/pleroma/web/twitter_api/twitter_api.ex b/lib/pleroma/web/twitter_api/twitter_api.ex index 4d74c6a73..f9c0994da 100644 --- a/lib/pleroma/web/twitter_api/twitter_api.ex +++ b/lib/pleroma/web/twitter_api/twitter_api.ex @@ -99,7 +99,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do def password_reset(nickname_or_email) do with true <- is_binary(nickname_or_email), - %User{local: true} = user <- User.get_by_nickname_or_email(nickname_or_email), + %User{local: true, email: email} = user when not is_nil(email) <- + User.get_by_nickname_or_email(nickname_or_email), {:ok, token_record} <- Pleroma.PasswordResetToken.create_token(user) do user |> UserEmail.password_reset_email(token_record.token) @@ -110,6 +111,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPI do false -> {:error, "bad user identifier"} + %User{local: true, email: nil} -> + {:ok, :noop} + %User{local: false} -> {:error, "remote user"} diff --git a/lib/pleroma/workers/cron/digest_emails_worker.ex b/lib/pleroma/workers/cron/digest_emails_worker.ex index c589a59eb..dd13c3b17 100644 --- a/lib/pleroma/workers/cron/digest_emails_worker.ex +++ b/lib/pleroma/workers/cron/digest_emails_worker.ex @@ -31,6 +31,7 @@ defmodule Pleroma.Workers.Cron.DigestEmailsWorker do from(u in inactive_users_query, where: fragment(~s(? ->'digest' @> 'true'), u.email_notifications), + where: not is_nil(u.email), where: u.last_digest_emailed_at < datetime_add(^now, ^negative_interval, "day"), select: u ) diff --git a/lib/pleroma/workers/cron/new_users_digest_worker.ex b/lib/pleroma/workers/cron/new_users_digest_worker.ex index 951c2c054..9bd0a5621 100644 --- a/lib/pleroma/workers/cron/new_users_digest_worker.ex +++ b/lib/pleroma/workers/cron/new_users_digest_worker.ex @@ -51,6 +51,7 @@ defmodule Pleroma.Workers.Cron.NewUsersDigestWorker do if users_and_statuses != [] do %{is_admin: true} |> User.Query.build() + |> where([u], not is_nil(u.email)) |> Repo.all() |> Enum.map(&Pleroma.Emails.NewUsersDigestEmail.new_users(&1, users_and_statuses)) |> Enum.each(&Pleroma.Emails.Mailer.deliver/1) |