diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 61c633ee9..eac6e996f 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.32.10", + "version": "2.32.11", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/user.ts b/packages/hydrooj/src/model/user.ts index 1918a3ad0..438c23d79 100644 --- a/packages/hydrooj/src/model/user.ts +++ b/packages/hydrooj/src/model/user.ts @@ -1,6 +1,6 @@ import { Collection } from 'mongodb'; import LRU from 'lru-cache'; -import { escapeRegExp } from 'lodash'; +import { escapeRegExp, pick } from 'lodash'; import * as system from './system'; import token from './token'; import * as setting from './setting'; @@ -23,7 +23,12 @@ const cache = new LRU({ max: 500, maxAge: 300 * 1000 }); export function deleteUserCache(udoc: User | Udoc | string | undefined | null, receiver = false) { if (!udoc) return; - if (!receiver) bus.broadcast('user/delcache', JSON.stringify(udoc)); + if (!receiver) { + bus.broadcast( + 'user/delcache', + JSON.stringify(typeof udoc === 'string' ? udoc : pick(udoc, ['uname', 'mail', '_id'])), + ); + } if (typeof udoc === 'string') { for (const key of cache.keys().filter((k) => k.endsWith(`/${udoc}`))) { cache.del(key);