feat(admin,api): restrict community creation on self-hosted (#3055)

This commit is contained in:
omster
2026-09-30 16:32:45 +02:00
committed by GitHub
parent ab4069ed0e
commit ca719e7b5e
95 changed files with 508 additions and 13 deletions
@@ -547,6 +547,7 @@ const InstancePolicyResponse = z.object({
single_community_guild_id: z.string().nullable(),
direct_messages_disabled: z.boolean(),
direct_messages_locked: z.boolean(),
guild_create_access: z.boolean(),
premium_mode: z.enum(['mirror', 'everyone']),
services: z.object({
gif_enabled: z.boolean().nullable(),
@@ -656,6 +657,7 @@ const InstancePolicyUpdateSchema = z.object({
direct_messages_disabled: z.boolean().optional(),
direct_messages_locked: z.literal(false).optional(),
premium_mode: z.enum(['mirror', 'everyone']).optional(),
guild_create_access: z.boolean().optional(),
services: z
.object({
gif_enabled: z.boolean().nullish(),
@@ -160,6 +160,11 @@ export const InstanceCommunitySchema = z
direct_messages_disabled: z
.boolean()
.describe('Whether direct messages and friend requests are disabled instance-wide'),
guild_create_access: z
.boolean()
.describe(
'Whether every account can create communities. When false, only admins and accounts granted the feature_guild_create limit can',
),
})
.describe('Community topology and direct-message policy for this instance');
export type InstanceCommunity = z.infer<typeof InstanceCommunitySchema>;