From 1afae60671d9c2753b00d274bb546603c29e9c92 Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 9 Jun 2023 16:03:26 +0800 Subject: [PATCH] core: fix user cache --- packages/hydrooj/src/model/user.ts | 5 +++++ 1 file changed, 5 insertions(+) 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;