manage user pending of moderation - #877

This commit is contained in:
Laurent GAY
2025-09-11 20:07:20 +02:00
parent fbf22a83b2
commit 04cf4efee4
15 changed files with 574 additions and 13 deletions

View File

@@ -206,6 +206,7 @@ defmodule Mobilizon.GraphQL.Schema.UserType do
value(:administrator, description: "Administrator role")
value(:moderator, description: "Moderator role")
value(:user, description: "User role")
value(:pending, description: "Pending role")
end
@desc "Token"

View File

@@ -15,7 +15,7 @@ defmodule Mobilizon.Users do
alias Mobilizon.Storage.{Page, Repo}
alias Mobilizon.Users.{ActivitySetting, PushSubscription, Setting, User}
defenum(UserRole, :user_role, [:administrator, :moderator, :user])
defenum(UserRole, :user_role, [:administrator, :moderator, :user, :pending])
defenum(NotificationPendingNotificationDelay,
none: 0,

View File

@@ -70,7 +70,13 @@ defmodule Mobilizon.Web.Email.User do
confirmed_at: DateTime.utc_now() |> DateTime.truncate(:second),
confirmation_sent_at: nil,
confirmation_token: nil,
email: user.unconfirmed_email || user.email
email: user.unconfirmed_email || user.email,
role:
if Config.instance_registrations_moderation?() do
:pending
else
user.role
end
}) do
{:ok, %User{} = user} ->
Logger.info("User #{user.email} has been confirmed")