From d66e245bd508868a67582e0dbc96cfc552069def Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 30 Apr 2026 02:20:57 +0800 Subject: [PATCH] core&ui: add showDefaultRole option --- packages/hydrooj/src/handler/domain.ts | 4 ++-- packages/hydrooj/src/model/setting.ts | 1 + packages/onsite-toolkit/index.ts | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index a33aaa226..21d57bb30 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -103,13 +103,13 @@ class DomainUserHandler extends ManageHandler { @requireSudo @param('format', Types.Range(['default', 'raw']), true) async get({ domainId }, format = 'default') { + const showDefault = system.get('server.showDefaultRole'); const [dudocs, roles] = await Promise.all([ domain.collUser.aggregate([ { $match: { - // TODO: add a page to display users who joined but with default role role: { - $nin: ['default', 'guest'], + $nin: (showDefault || domainId !== 'system') ? ['guest'] : ['default', 'guest'], $ne: null, }, domainId, diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 8de6c6e86..9a01aa835 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -315,6 +315,7 @@ SystemSetting(Schema.object({ }).extra('family', 'setting_smtp'), server: Schema.object({ allowInvite: Schema.boolean().default(true).description('Allow invite users'), + showDefaultRole: Schema.boolean().default(false).description('Show default role users in domain user management'), center: Schema.string().default('https://hydro.ac/center').description('Server Center').role('url').hidden(), name: Schema.string().default('Hydro').description('Server Name'), url: Schema.string().default('/').description('Server BaseURL'), diff --git a/packages/onsite-toolkit/index.ts b/packages/onsite-toolkit/index.ts index e640ed08c..c79abb252 100644 --- a/packages/onsite-toolkit/index.ts +++ b/packages/onsite-toolkit/index.ts @@ -107,7 +107,7 @@ export function apply(ctx: Context, config: ReturnType) { organization: udoc.school || udoc.uname, avatar: avatar(udoc.avatar), group: [ - ...(udoc.group.filter((g) => g !== `${udoc._id}`)), + ...(udoc.group?.filter((g) => g !== `${udoc._id}`) || []), i.unrank ? 'observers' : 'participants', ], };