diff --git a/packages/hydrooj/src/model/user.ts b/packages/hydrooj/src/model/user.ts index f7b0c3ecc..0b7ecb797 100644 --- a/packages/hydrooj/src/model/user.ts +++ b/packages/hydrooj/src/model/user.ts @@ -265,6 +265,11 @@ class UserModel { if ($unset && Object.keys($unset).length) op.$unset = $unset; if ($push && Object.keys($push).length) op.$push = $push; if (op.$set?.loginip) op.$addToSet = { ip: op.$set.loginip }; + const keys = new Set(Object.values(op).flatMap((i) => Object.keys(i))); + if (keys.has('mailLower') || keys.has('unameLower')) { + const udoc = await coll.findOne({ _id: uid }); + deleteUserCache(udoc); + } const res = await coll.findOneAndUpdate({ _id: uid }, op, { returnDocument: 'after' }); deleteUserCache(res.value); return res;