Remove toggle_confirmation; require explicit state change
Also cosmetic changes to make the code clearer
This commit is contained in:
parent
d36182c088
commit
2c0fe2ea9e
11 changed files with 37 additions and 41 deletions
|
|
@ -213,7 +213,7 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
user =
|
||||
case Keyword.get(options, :confirmed) do
|
||||
nil -> user
|
||||
value -> set_confirmed(user, value)
|
||||
value -> set_confirmation(user, value)
|
||||
end
|
||||
|
||||
user =
|
||||
|
|
@ -373,7 +373,7 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
|> Pleroma.Repo.chunk_stream(500, :batches)
|
||||
|> Stream.each(fn users ->
|
||||
users
|
||||
|> Enum.each(fn user -> User.need_confirmation(user, false) end)
|
||||
|> Enum.each(fn user -> User.set_confirmation(user, true) end)
|
||||
end)
|
||||
|> Stream.run()
|
||||
end
|
||||
|
|
@ -391,7 +391,7 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
|> Pleroma.Repo.chunk_stream(500, :batches)
|
||||
|> Stream.each(fn users ->
|
||||
users
|
||||
|> Enum.each(fn user -> User.need_confirmation(user, true) end)
|
||||
|> Enum.each(fn user -> User.set_confirmation(user, false) end)
|
||||
end)
|
||||
|> Stream.run()
|
||||
end
|
||||
|
|
@ -454,8 +454,8 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
user
|
||||
end
|
||||
|
||||
defp set_confirmed(user, value) do
|
||||
{:ok, user} = User.need_confirmation(user, !value)
|
||||
defp set_confirmation(user, value) do
|
||||
{:ok, user} = User.set_confirmation(user, value)
|
||||
|
||||
shell_info("Confirmation status of #{user.nickname}: #{user.is_confirmed}")
|
||||
user
|
||||
|
|
|
|||
|
|
@ -704,11 +704,11 @@ defmodule Pleroma.User do
|
|||
reason_limit = Config.get([:instance, :registration_reason_length], 500)
|
||||
params = Map.put_new(params, :accepts_chat_messages, true)
|
||||
|
||||
need_confirmation? =
|
||||
if is_nil(opts[:need_confirmation]) do
|
||||
Config.get([:instance, :account_activation_required])
|
||||
confirmed? =
|
||||
if is_nil(opts[:confirmed]) do
|
||||
!Config.get([:instance, :account_activation_required])
|
||||
else
|
||||
opts[:need_confirmation]
|
||||
opts[:confirmed]
|
||||
end
|
||||
|
||||
need_approval? =
|
||||
|
|
@ -719,7 +719,7 @@ defmodule Pleroma.User do
|
|||
end
|
||||
|
||||
struct
|
||||
|> confirmation_changeset(need_confirmation: need_confirmation?)
|
||||
|> confirmation_changeset(set_confirmation: confirmed?)
|
||||
|> approval_changeset(need_approval: need_approval?)
|
||||
|> cast(params, [
|
||||
:bio,
|
||||
|
|
@ -1643,7 +1643,7 @@ defmodule Pleroma.User do
|
|||
end
|
||||
|
||||
def confirm(%User{is_confirmed: false} = user) do
|
||||
with chg <- confirmation_changeset(user, need_confirmation: false),
|
||||
with chg <- confirmation_changeset(user, set_confirmation: true),
|
||||
{:ok, user} <- update_and_set_cache(chg) do
|
||||
post_register_action(user)
|
||||
{:ok, user}
|
||||
|
|
@ -2138,10 +2138,10 @@ defmodule Pleroma.User do
|
|||
updated_user
|
||||
end
|
||||
|
||||
@spec need_confirmation(User.t(), boolean()) :: {:ok, User.t()} | {:error, Changeset.t()}
|
||||
def need_confirmation(%User{} = user, bool) do
|
||||
@spec set_confirmation(User.t(), boolean()) :: {:ok, User.t()} | {:error, Changeset.t()}
|
||||
def set_confirmation(%User{} = user, bool) do
|
||||
user
|
||||
|> confirmation_changeset(need_confirmation: bool)
|
||||
|> confirmation_changeset(set_confirmation: bool)
|
||||
|> update_and_set_cache()
|
||||
end
|
||||
|
||||
|
|
@ -2309,18 +2309,18 @@ defmodule Pleroma.User do
|
|||
end
|
||||
|
||||
@spec confirmation_changeset(User.t(), keyword()) :: Changeset.t()
|
||||
def confirmation_changeset(user, need_confirmation: need_confirmation?) do
|
||||
def confirmation_changeset(user, set_confirmation: confirmed?) do
|
||||
params =
|
||||
if need_confirmation? do
|
||||
%{
|
||||
is_confirmed: false,
|
||||
confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
|
||||
}
|
||||
else
|
||||
if confirmed? do
|
||||
%{
|
||||
is_confirmed: true,
|
||||
confirmation_token: nil
|
||||
}
|
||||
else
|
||||
%{
|
||||
is_confirmed: false,
|
||||
confirmation_token: :crypto.strong_rand_bytes(32) |> Base.url_encode64()
|
||||
}
|
||||
end
|
||||
|
||||
cast(user, params, [:is_confirmed, :confirmation_token])
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ defmodule Pleroma.Web.Auth.PleromaAuthenticator do
|
|||
password_confirmation: random_password
|
||||
},
|
||||
external: true,
|
||||
need_confirmation: false
|
||||
confirmed: true
|
||||
)
|
||||
|> Repo.insert(),
|
||||
{:ok, _} <-
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue