summary refs log tree commit diff
path: root/src/routes
diff options
context:
space:
mode:
authorFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 01:49:43 +0200
committerFlam3rboy <34555296+Flam3rboy@users.noreply.github.com>2021-08-12 01:49:43 +0200
commit58d3ec17aec4383d9c9e971d9d506c1a55f12b67 (patch)
tree2d1198761d79973c302fd8629e3cc995172aa375 /src/routes
parentMerge pull request #198 from fosscord/l10n_master (diff)
downloadserver-58d3ec17aec4383d9c9e971d9d506c1a55f12b67.tar.xz
:bug: fix login undelete/undisable
Diffstat (limited to 'src/routes')
-rw-r--r--src/routes/auth/login.ts21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/routes/auth/login.ts b/src/routes/auth/login.ts
index 8d1a8df3..6c4e5e3e 100644
--- a/src/routes/auth/login.ts
+++ b/src/routes/auth/login.ts
@@ -47,27 +47,20 @@ router.post(
 
 		const user = await UserModel.findOne(
 			{ $or: query },
-			{
-				user_data: {
-					hash: true
-				},
-				id: true,
-				user_settings: {
-					locale: true,
-					theme: true
-				}
-			}
+			{ user_data: { hash: true }, id: true, disabled: true, deleted: true, user_settings: { locale: true, theme: true } }
 		)
 			.exec()
 			.catch((e) => {
 				throw FieldErrors({ login: { message: req.t("auth:login.INVALID_LOGIN"), code: "INVALID_LOGIN" } });
 			});
 
-		if (user.disabled && undelete) {
+		if (undelete) {
 			// undelete refers to un'disable' here
-			await UserModel.updateOne({ id: req.user_id }, { disabled: false }).exec();
-		} else if (user.disabled) {
-			return res.status(400).json({ message: req.t("auth:login.ACCOUNT_DISABLED"), code: 20013 });
+			if (user.disabled) await UserModel.updateOne({ id: user.id }, { disabled: false }).exec();
+			if (user.deleted) await UserModel.updateOne({ id: user.id }, { deleted: false }).exec();
+		} else {
+			if (user.deleted) return res.status(400).json({ message: "This account is scheduled for deletion.", code: 20011 });
+			if (user.disabled) return res.status(400).json({ message: req.t("auth:login.ACCOUNT_DISABLED"), code: 20013 });
 		}
 
 		// the salt is saved in the password refer to bcrypt docs