|
|
|
@ -196,17 +196,24 @@ defmodule Mix.Tasks.Pleroma.User do
|
|
|
|
|
OptionParser.parse(
|
|
|
|
|
rest,
|
|
|
|
|
strict: [
|
|
|
|
|
moderator: :boolean,
|
|
|
|
|
admin: :boolean,
|
|
|
|
|
locked: :boolean
|
|
|
|
|
confirmed: :boolean,
|
|
|
|
|
locked: :boolean,
|
|
|
|
|
moderator: :boolean
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
with %User{local: true} = user <- User.get_cached_by_nickname(nickname) do
|
|
|
|
|
user =
|
|
|
|
|
case Keyword.get(options, :moderator) do
|
|
|
|
|
case Keyword.get(options, :admin) do
|
|
|
|
|
nil -> user
|
|
|
|
|
value -> set_moderator(user, value)
|
|
|
|
|
value -> set_admin(user, value)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
user =
|
|
|
|
|
case Keyword.get(options, :confirmed) do
|
|
|
|
|
nil -> user
|
|
|
|
|
value -> set_confirmed(user, value)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
user =
|
|
|
|
@ -216,9 +223,9 @@ defmodule Mix.Tasks.Pleroma.User do
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
_user =
|
|
|
|
|
case Keyword.get(options, :admin) do
|
|
|
|
|
case Keyword.get(options, :moderator) do
|
|
|
|
|
nil -> user
|
|
|
|
|
value -> set_admin(user, value)
|
|
|
|
|
value -> set_moderator(user, value)
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
_ ->
|
|
|
|
@ -353,6 +360,42 @@ defmodule Mix.Tasks.Pleroma.User do
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def run(["confirm_all"]) do
|
|
|
|
|
start_pleroma()
|
|
|
|
|
|
|
|
|
|
Pleroma.User.Query.build(%{
|
|
|
|
|
local: true,
|
|
|
|
|
deactivated: false,
|
|
|
|
|
is_moderator: false,
|
|
|
|
|
is_admin: false,
|
|
|
|
|
invisible: false
|
|
|
|
|
})
|
|
|
|
|
|> Pleroma.RepoStreamer.chunk_stream(500)
|
|
|
|
|
|> Stream.each(fn users ->
|
|
|
|
|
users
|
|
|
|
|
|> Enum.each(fn user -> User.need_confirmation(user, false) end)
|
|
|
|
|
end)
|
|
|
|
|
|> Stream.run()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def run(["unconfirm_all"]) do
|
|
|
|
|
start_pleroma()
|
|
|
|
|
|
|
|
|
|
Pleroma.User.Query.build(%{
|
|
|
|
|
local: true,
|
|
|
|
|
deactivated: false,
|
|
|
|
|
is_moderator: false,
|
|
|
|
|
is_admin: false,
|
|
|
|
|
invisible: false
|
|
|
|
|
})
|
|
|
|
|
|> Pleroma.RepoStreamer.chunk_stream(500)
|
|
|
|
|
|> Stream.each(fn users ->
|
|
|
|
|
users
|
|
|
|
|
|> Enum.each(fn user -> User.need_confirmation(user, true) end)
|
|
|
|
|
end)
|
|
|
|
|
|> Stream.run()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def run(["sign_out", nickname]) do
|
|
|
|
|
start_pleroma()
|
|
|
|
|
|
|
|
|
@ -410,4 +453,15 @@ defmodule Mix.Tasks.Pleroma.User do
|
|
|
|
|
shell_info("Locked status of #{user.nickname}: #{user.locked}")
|
|
|
|
|
user
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
defp set_confirmed(user, value) do
|
|
|
|
|
{:ok, user} =
|
|
|
|
|
case value do
|
|
|
|
|
true -> User.need_confirmation(user, false)
|
|
|
|
|
false -> User.need_confirmation(user, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
shell_info("Confirmation pending status of #{user.nickname}: #{user.confirmation_pending}")
|
|
|
|
|
user
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|