diff --git a/frontend/src/home/header.tsx b/frontend/src/home/header.tsx index 6bf7735324b2c4a4873a036d905326c9fd7dce99..0bb78a30a81f29b45c85ff9e775006f6a106f428 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 1727db90fa3905843690fdbf5cadc853f3c55ee3..4031939ed6ab2fd1610166bbb5b49cdf880a7312 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 286f5052a6cfffb8c841ef639a64d7f9020ce799..27abf9f693207f7c3b5d4fc5d7b403e4d5b3a24f 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 91545620114b24ac71c1bf84b6d2152808136aa7..fbf33e6b1f495f817b3ac37d5cef02bc791a349b 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 9b1724288a8338ef11e81d08b3690fe19924a88c..ecb2dd1b032b85c56510c7f2aebe807427696c07 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 ac1676b9b7a55acf07770030dcb7668b4aa64fea..c1c0ab0a50a3da9ba74636d45ebc62aaa3fd5035 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;