From 949c990a4ac9f1feab9267aca68321c08cedf679 Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 25 Mar 2026 20:52:21 +0800 Subject: [PATCH] domain: permission: filter out placeholder bit --- packages/hydrooj/src/handler/domain.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/src/handler/domain.ts b/packages/hydrooj/src/handler/domain.ts index 4f8ace852..f29170d50 100644 --- a/packages/hydrooj/src/handler/domain.ts +++ b/packages/hydrooj/src/handler/domain.ts @@ -224,7 +224,10 @@ class DomainPermissionHandler extends ManageHandler { : (typeof list === 'object' && list) ? Object.values(list) : [list]; roles[role] = 0n; - for (const r of perms) roles[role] |= 1n << BigInt(r); + for (const r of perms) { + if (+r === 1000) continue; // skip placeholder value + roles[role] |= 1n << BigInt(r); + } } await Promise.all([ domain.setRoles(domainId, roles), @@ -391,7 +394,7 @@ class DomainJoinHandler extends Handler { const groups = await user.listGroup(target); const entry = groups.find((i) => i.name === this.joinSettings.group); if (!entry) throw new ValidationError('group'); - await user.updateGroup(target, entry.name, entry.uids.concat(this.user._id)); + await user.updateGroup(target, entry.name, [...entry.uids, this.user._id]); } await Promise.all([ domain.setUserInDomain(target, this.user._id, {