From 3f2c6625a26cbf4a87b66e69bec3706b0aa8c695 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 26 Sep 2021 23:17:49 +0800 Subject: [PATCH] core: allow login by email --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/handler/user.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 5e5bf5957..f075c1763 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.39.6", + "version": "2.39.7", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/handler/user.ts b/packages/hydrooj/src/handler/user.ts index 607285324..66f31084e 100644 --- a/packages/hydrooj/src/handler/user.ts +++ b/packages/hydrooj/src/handler/user.ts @@ -77,7 +77,8 @@ class UserLoginHandler extends Handler { @param('redirect', Types.String, true) async post(domainId: string, uname: string, password: string, rememberme = false, redirect = '') { if (!system.get('server.login')) throw new LoginError('Builtin login disabled.'); - const udoc = await user.getByUname(domainId, uname); + let udoc = await user.getByEmail(domainId, uname); + if (!udoc) udoc = await user.getByUname(domainId, uname); if (!udoc) throw new UserNotFoundError(uname); udoc.checkPassword(password); await user.setById(udoc._id, { loginat: new Date(), loginip: this.request.ip });