use Pleroma.Web, :controller
alias Pleroma.Notification
+ alias Pleroma.Plugs.OAuthScopesPlug
alias Pleroma.User
alias Pleroma.Web.OAuth.Token
alias Pleroma.Web.TwitterAPI.TokenView
require Logger
+ plug(OAuthScopesPlug, %{scopes: ["write:notifications"]} when action == :notifications_read)
+
+ plug(Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug)
+
action_fallback(:errors)
def confirm_email(conn, %{"user_id" => uid, "token" => token}) do
- true <- user.local,
- true <- user.info.confirmation_pending,
- true <- user.info.confirmation_token == token,
- conn
- |> redirect(to: "/")
+ new_info = [need_confirmation: false]
+
with %User{info: info} = user <- User.get_cached_by_id(uid),
- {:ok, _} <-
- User.update_info(user, &User.Info.confirmation_changeset(&1, need_confirmation: false)) do
+ true <- user.local and info.confirmation_pending and info.confirmation_token == token,
+ {:ok, _} <- User.update_info(user, &User.Info.confirmation_changeset(&1, new_info)) do
+ redirect(conn, to: "/")
end
end