From 85feb2e1e689a470ca9d669be3a8a8c4ce3120bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B5=ED=9D=AC=20=EA=B9=80?= Date: Thu, 2 Jan 2025 15:15:14 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/auth.js | 6 ++++++ src/controllers/user.js | 44 +++++++++++++++++++++++++++++++++++++++++ src/routes/user.js | 2 ++ 3 files changed, 52 insertions(+) diff --git a/src/controllers/auth.js b/src/controllers/auth.js index 644712d..69c6ffc 100644 --- a/src/controllers/auth.js +++ b/src/controllers/auth.js @@ -99,6 +99,12 @@ const loginUser = async (req, res) => { const { email, password } = await req.body; const user = await User.findOne({ email }).select('+password'); + if (user.isVerified === false) { + return res + .status(404) + .json({ success: false, message: '탈퇴한 회원입니다. 관리자에게 문의하세요' }); + } + if (!user) { return res .status(404) diff --git a/src/controllers/user.js b/src/controllers/user.js index 19fea5a..f821d04 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -58,6 +58,7 @@ const getUserByAdmin = async (req, res) => { }; const updateUser = async (req, res) => { const user = await getUser(req, res); + console.log(req) const uid = user._id.toString(); @@ -182,10 +183,53 @@ const changePassword = async (req, res) => { } }; +const setUserUnverified = async (req, res) => { + const { id } = req.params; // URL 매개변수에서 id 가져오기 + + if (!id) { + return res.status(400).json({ + success: false, + message: 'User ID is required', + }); + } + + try { + const profile = await User.findByIdAndUpdate( + id, // 전달받은 id로 사용자 검색 + { isVerified: false }, // isVerified를 false로 업데이트 + { + new: true, // 업데이트된 문서를 반환 + runValidators: true, // Mongoose validators 실행 + } + ).select('-password'); // password 필드 제외 + + if (!profile) { + return res.status(404).json({ + success: false, + message: 'User Not Found', + }); + } + + return res.status(200).json({ + success: true, + data: profile, + }); + } catch (error) { + return res.status(400).json({ + success: false, + message: error.message, + }); + } +}; + + + + module.exports = { getOneUser, updateUser, getInvoice, changePassword, getUserByAdmin, + setUserUnverified }; diff --git a/src/routes/user.js b/src/routes/user.js index 030944b..023be41 100644 --- a/src/routes/user.js +++ b/src/routes/user.js @@ -8,6 +8,8 @@ router.get("/users/profile", verifyToken, userController.getOneUser); router.put("/users/profile", verifyToken, userController.updateUser); +router.put("/users/verifiedFalse", verifyToken, userController.setUserUnverified); + router.get("/users/invoice", verifyToken, userController.getInvoice); router.put(