From aea095b35636c3ac69ab212f20e6004938ca5d2e Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 8 May 2026 05:33:16 +0800 Subject: [PATCH] core: fix showDefaultRole flag --- packages/hydrooj/src/handler/domain.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 21d57bb30..9036b18a7 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 showDefault = system.get('server.showDefaultRole') || domainId !== 'system'; const [dudocs, roles] = await Promise.all([ domain.collUser.aggregate([ { $match: { - role: { - $nin: (showDefault || domainId !== 'system') ? ['guest'] : ['default', 'guest'], + role: showDefault ? { $ne: 'guest' } : { + $nin: ['default', 'guest'], $ne: null, }, domainId, @@ -158,7 +158,7 @@ class DomainUserHandler extends ManageHandler { return u; }); const rudocs = {}; - for (const role of roles) rudocs[role._id] = users.filter((udoc) => udoc.role === role._id); + for (const role of roles) rudocs[role._id] = users.filter((udoc) => (udoc.role || 'default') === role._id); this.response.template = format === 'raw' ? 'domain_user_raw.html' : 'domain_user.html'; this.response.body = { roles, rudocs, domain: this.domain,