From ed7b303c030cf1e5513884b019cdfac10f9cc598 Mon Sep 17 00:00:00 2001 From: Daeki Yoon Date: Tue, 26 Jul 2022 11:21:24 +0900 Subject: [PATCH] =?UTF-8?q?user=20role=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/home/header.tsx | 4 ++-- src/controllers/auth.controller.ts | 1 + src/db/user.db.ts | 12 +++++++----- src/models/index.ts | 2 +- src/models/role.model.ts | 2 +- src/models/user.model.ts | 2 +- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/frontend/src/home/header.tsx b/frontend/src/home/header.tsx index 6bf7735..0bb78a3 100644 --- a/frontend/src/home/header.tsx +++ b/frontend/src/home/header.tsx @@ -5,7 +5,7 @@ import { useAuth } from "../auth/auth.context"; import "tailwindcss/tailwind.css"; export default function Header() { - const { logout } = useAuth(); + const { logout, user } = useAuth(); const [search, setSearch] = useState(""); const handleChange = (e: React.ChangeEvent) => { @@ -33,7 +33,7 @@ export default function Header() {
- {useAuth().user.isLoggedIn ? ( + {user.isLoggedIn ? (
프로필 diff --git a/src/controllers/auth.controller.ts b/src/controllers/auth.controller.ts index 1727db9..4031939 100644 --- a/src/controllers/auth.controller.ts +++ b/src/controllers/auth.controller.ts @@ -70,6 +70,7 @@ export const login = asyncWrap(async (req, res) => { res.json({ isLoggedIn: true, email: user.email, + role: user.role?.name, }); }); diff --git a/src/db/user.db.ts b/src/db/user.db.ts index 286f505..27abf9f 100644 --- a/src/db/user.db.ts +++ b/src/db/user.db.ts @@ -1,12 +1,12 @@ import bcrypt from "bcryptjs"; import { ObjectId } from "mongoose"; -import { IUser, Role, Post, User, FileInfo } from "../models"; +import { IUser, Role, Post, User, FileInfo, IRole } from "../models"; import fs from "fs/promises"; export const createUser = async (user: IUser) => { // 비밀번호 암호화 const hash = await bcrypt.hash(user.password, 10); - const newFileInfo = await FileInfo.create({}); + // const newFileInfo = await FileInfo.create({}); // 사용자 역할 추가: 기본값은 "user" let userRole = null; if (user.role) { @@ -19,7 +19,7 @@ export const createUser = async (user: IUser) => { password: hash, role: userRole, isNew: true, - fileInfo: newFileInfo._id, + // fileInfo: newFileInfo._id, }); const retUser = await newUser.save(); return retUser; @@ -31,9 +31,11 @@ export const findUserByEmail = async ( ) => { let user; if (includePassword) { - user = await User.findOne({ email }).select("+password"); + user = await User.findOne({ email }) + .select("+password") + .populate<{ role: IRole }>("role"); } else { - user = await User.findOne({ email }); + user = await User.findOne({ email }).populate<{ role: IRole }>("role"); } return user; }; diff --git a/src/models/index.ts b/src/models/index.ts index 9154562..fbf33e6 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -1,5 +1,5 @@ export { default as User, IUser } from "./user.model"; export { default as Post, PostType } from "./post.model"; -export { default as Role } from "./role.model"; +export { default as Role, IRole } from "./role.model"; export { default as FileInfo, IFileInfo } from "./fileinfo.model"; export { default as Mainimg, MainimgType } from "./mainimg.model"; diff --git a/src/models/role.model.ts b/src/models/role.model.ts index 9b17242..ecb2dd1 100644 --- a/src/models/role.model.ts +++ b/src/models/role.model.ts @@ -1,6 +1,6 @@ import { model, Schema } from "mongoose"; -interface IRole { +export interface IRole { name: string; priority: number; } diff --git a/src/models/user.model.ts b/src/models/user.model.ts index ac1676b..c1c0ab0 100644 --- a/src/models/user.model.ts +++ b/src/models/user.model.ts @@ -1,4 +1,4 @@ -import { model, Schema, Types, version } from "mongoose"; +import { model, Schema, Types } from "mongoose"; export interface IUser { email: string; -- GitLab