[Adminitration] Allow registrations: 3 modes = "close", "allowed", "moderate" - #877
This commit is contained in:
@@ -90,6 +90,7 @@ defmodule Mobilizon.GraphQL.Resolvers.Config do
|
||||
%{
|
||||
name: Config.instance_name(),
|
||||
registrations_open: Config.instance_registrations_open?(),
|
||||
registrations_moderation: Config.instance_registrations_moderation?(),
|
||||
registrations_allowlist: Config.instance_registrations_allowlist?(),
|
||||
contact: Config.contact(),
|
||||
demo_mode: Config.instance_demo_mode?(),
|
||||
|
||||
@@ -153,6 +153,11 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
|
||||
field(:instance_privacy_policy_url, :string, description: "The instance's privacy policy URL")
|
||||
field(:instance_rules, :string, description: "The instance's rules")
|
||||
field(:registrations_open, :boolean, description: "Whether the registrations are opened")
|
||||
|
||||
field(:registrations_moderation, :boolean,
|
||||
description: "Whether the registrations want moderation"
|
||||
)
|
||||
|
||||
field(:instance_languages, list_of(:string), description: "The instance's languages")
|
||||
end
|
||||
|
||||
@@ -464,6 +469,11 @@ defmodule Mobilizon.GraphQL.Schema.AdminType do
|
||||
arg(:instance_privacy_policy_url, :string, description: "The instance's privacy policy URL")
|
||||
arg(:instance_rules, :string, description: "The instance's rules")
|
||||
arg(:registrations_open, :boolean, description: "Whether the registrations are opened")
|
||||
|
||||
arg(:registrations_moderation, :boolean,
|
||||
description: "Whether the registrations want moderation"
|
||||
)
|
||||
|
||||
arg(:instance_languages, list_of(:string), description: "The instance's languages")
|
||||
middleware(Rajska.QueryAuthorization, permit: :administrator)
|
||||
resolve(&Admin.save_settings/3)
|
||||
|
||||
@@ -26,6 +26,10 @@ defmodule Mobilizon.GraphQL.Schema.ConfigType do
|
||||
|
||||
field(:registrations_open, :boolean, description: "Whether the registrations are opened")
|
||||
|
||||
field(:registrations_moderation, :boolean,
|
||||
description: "Whether the registrations want moderation"
|
||||
)
|
||||
|
||||
field(:registrations_allowlist, :boolean,
|
||||
description: "Whether the registration are on an allowlist"
|
||||
)
|
||||
|
||||
@@ -15,6 +15,7 @@ defmodule Mobilizon.Config do
|
||||
description: String.t(),
|
||||
hostname: String.t(),
|
||||
registrations_open: boolean(),
|
||||
registrations_moderation: boolean(),
|
||||
languages: list(String.t()),
|
||||
default_language: String.t(),
|
||||
registration_email_allowlist: list(String.t()),
|
||||
@@ -154,6 +155,17 @@ defmodule Mobilizon.Config do
|
||||
)
|
||||
)
|
||||
|
||||
@spec instance_registrations_moderation? :: boolean
|
||||
def instance_registrations_moderation?,
|
||||
do:
|
||||
to_boolean(
|
||||
config_cached_value(
|
||||
"instance",
|
||||
"registrations_moderation",
|
||||
instance_config()[:registrations_moderation]
|
||||
)
|
||||
)
|
||||
|
||||
@spec instance_languages :: list(String.t())
|
||||
def instance_languages,
|
||||
do:
|
||||
@@ -451,6 +463,7 @@ defmodule Mobilizon.Config do
|
||||
instance_name: instance_name(),
|
||||
instance_slogan: instance_slogan(),
|
||||
registrations_open: instance_registrations_open?(),
|
||||
registrations_moderation: instance_registrations_moderation?(),
|
||||
contact: contact(),
|
||||
primary_color: primary_color(),
|
||||
secondary_color: secondary_color(),
|
||||
|
||||
@@ -53,6 +53,7 @@ defmodule Mobilizon.Web.NodeInfoController do
|
||||
outbound: ["atom1.0"]
|
||||
},
|
||||
openRegistrations: Config.instance_registrations_open?(),
|
||||
moderationRegistrations: Config.instance_registrations_moderation?(),
|
||||
usage: %{
|
||||
users: %{
|
||||
total: Statistics.get_cached_value(:local_users)
|
||||
|
||||
Reference in New Issue
Block a user