From 35a7f28ac9723239c5e169940ede0840c9b0982d Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Thu, 22 Aug 2024 10:10:33 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=EC=A0=80=20=EC=84=B8=EC=85=98?= =?UTF-8?q?=20=EC=B2=B4=ED=81=AC=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/[locale]/community/archive/page.jsx | 5 ++++- src/app/[locale]/community/faq/page.jsx | 5 ++++- src/app/[locale]/community/notice/page.jsx | 5 ++++- src/app/[locale]/intro/page.jsx | 5 ++++- src/app/[locale]/layout.js | 1 + src/app/[locale]/management/plan/page.jsx | 5 ++++- src/app/[locale]/management/stuff/page.jsx | 5 ++++- src/app/[locale]/master/company/page.jsx | 5 ++++- src/app/[locale]/master/price/page.jsx | 5 ++++- src/app/[locale]/page.js | 2 +- src/app/[locale]/playground/page.jsx | 10 ++++++++- src/app/[locale]/roof/page.jsx | 5 ++++- src/app/[locale]/roof2/page.jsx | 14 +++--------- src/components/Roof2.jsx | 2 ++ src/components/common/grid/QGrid.jsx | 1 - src/lib/authActions.js | 25 +++++++++------------ src/lib/session.js | 8 +------ src/lib/user.js | 10 +++++++++ src/util/context-util.js | 2 +- src/util/session-util.js | 10 +++++++++ 20 files changed, 85 insertions(+), 45 deletions(-) create mode 100644 src/util/session-util.js diff --git a/src/app/[locale]/community/archive/page.jsx b/src/app/[locale]/community/archive/page.jsx index 4c0cbdb0..6917f228 100644 --- a/src/app/[locale]/community/archive/page.jsx +++ b/src/app/[locale]/community/archive/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Archive from '@/components/community/Archive' +import { initCheck } from '@/util/session-util' + +export default async function CommunityArchivePage() { + await initCheck() -export default function CommunityArchivePage() { return ( <> diff --git a/src/app/[locale]/community/faq/page.jsx b/src/app/[locale]/community/faq/page.jsx index 3f764566..2b9d5452 100644 --- a/src/app/[locale]/community/faq/page.jsx +++ b/src/app/[locale]/community/faq/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Faq from '@/components/community/Faq' +import { initCheck } from '@/util/session-util' + +export default async function CommunityFaqPage() { + await initCheck() -export default function CommunityFaqPage() { return ( <> diff --git a/src/app/[locale]/community/notice/page.jsx b/src/app/[locale]/community/notice/page.jsx index 5372112e..d2157b20 100644 --- a/src/app/[locale]/community/notice/page.jsx +++ b/src/app/[locale]/community/notice/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Notice from '@/components/community/Notice' +import { initCheck } from '@/util/session-util' + +export default async function CommunityNoticePage() { + await initCheck() -export default function CommunityNoticePage() { return ( <> diff --git a/src/app/[locale]/intro/page.jsx b/src/app/[locale]/intro/page.jsx index 3c96c165..8d560ce5 100644 --- a/src/app/[locale]/intro/page.jsx +++ b/src/app/[locale]/intro/page.jsx @@ -1,6 +1,9 @@ import Intro from '@/components/Intro' +import { initCheck } from '@/util/session-util' + +export default async function IntroPage() { + await initCheck() -export default function IntroPage() { return ( <>
diff --git a/src/app/[locale]/layout.js b/src/app/[locale]/layout.js index 9ae6b1b9..c7966ab6 100644 --- a/src/app/[locale]/layout.js +++ b/src/app/[locale]/layout.js @@ -5,6 +5,7 @@ import { LocaleProvider } from './LocaleProvider' export default function LocaleLayout({ children }) { const locale = useCurrentLocale() + return ( <> diff --git a/src/app/[locale]/management/plan/page.jsx b/src/app/[locale]/management/plan/page.jsx index 61937238..5fefa62a 100644 --- a/src/app/[locale]/management/plan/page.jsx +++ b/src/app/[locale]/management/plan/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Plan from '@/components/management/Plan' +import { initCheck } from '@/util/session-util' + +export default async function ManagementPlanPage() { + await initCheck() -export default function ManagementPlanPage() { return ( <> diff --git a/src/app/[locale]/management/stuff/page.jsx b/src/app/[locale]/management/stuff/page.jsx index 15131ba6..e2d3c1cd 100644 --- a/src/app/[locale]/management/stuff/page.jsx +++ b/src/app/[locale]/management/stuff/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Stuff from '@/components/management/Stuff' +import { initCheck } from '@/util/session-util' + +export default async function ManagementStuffPage() { + await initCheck() -export default function ManagementStuffPage() { return ( <> diff --git a/src/app/[locale]/master/company/page.jsx b/src/app/[locale]/master/company/page.jsx index 6ee60f0e..15eda41c 100644 --- a/src/app/[locale]/master/company/page.jsx +++ b/src/app/[locale]/master/company/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Company from '@/components/master/Company' +import { initCheck } from '@/util/session-util' + +export default async function MasterCompanyPage() { + await initCheck() -export default function MasterCompanyPage() { return ( <> diff --git a/src/app/[locale]/master/price/page.jsx b/src/app/[locale]/master/price/page.jsx index c0e5a40d..a641d6bb 100644 --- a/src/app/[locale]/master/price/page.jsx +++ b/src/app/[locale]/master/price/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Price from '@/components/master/Price' +import { initCheck } from '@/util/session-util' + +export default async function MasterPricePage() { + await initCheck() -export default function MasterPricePage() { return ( <> diff --git a/src/app/[locale]/page.js b/src/app/[locale]/page.js index e2c11aed..bbdcd96d 100644 --- a/src/app/[locale]/page.js +++ b/src/app/[locale]/page.js @@ -1,6 +1,6 @@ -import MainPage from '@/components/Main' import { getSession } from '@/lib/authActions' import { getCurrentLocale } from '@/locales/server' +import MainPage from '@/components/Main' export default async function page() { const session = await getSession() diff --git a/src/app/[locale]/playground/page.jsx b/src/app/[locale]/playground/page.jsx index b8a7f496..66d83c34 100644 --- a/src/app/[locale]/playground/page.jsx +++ b/src/app/[locale]/playground/page.jsx @@ -1,6 +1,14 @@ import Playground from '@/components/Playground' +import { initCheck } from '@/util/session-util' + +export default async function PlaygroundPage() { + // const { session } = await checkSession() + + // if (!session.isLoggedIn) { + // redirect('/login') + // } + await initCheck() -export default function PlaygroundPage() { return ( <> diff --git a/src/app/[locale]/roof/page.jsx b/src/app/[locale]/roof/page.jsx index 4d9703f3..f5b8e611 100644 --- a/src/app/[locale]/roof/page.jsx +++ b/src/app/[locale]/roof/page.jsx @@ -1,7 +1,10 @@ import Hero from '@/components/Hero' import Roof from '@/components/Roof' +import { initCheck } from '@/util/session-util' + +export default async function RoofPage() { + await initCheck() -export default function RoofPage() { return ( <> diff --git a/src/app/[locale]/roof2/page.jsx b/src/app/[locale]/roof2/page.jsx index 6e9df6bf..8d707367 100644 --- a/src/app/[locale]/roof2/page.jsx +++ b/src/app/[locale]/roof2/page.jsx @@ -1,17 +1,9 @@ -'use client' - import Roof2 from '@/components/Roof2' -import { textState } from '@/store/canvasAtom' -import { useEffect } from 'react' -import { useRecoilState } from 'recoil' import RoofSelect from '@/app/[locale]/roof2/RoofSelect' +import { initCheck } from '@/util/session-util' -export default function Roof2Page() { - const [text, setText] = useRecoilState(textState) - - useEffect(() => { - console.log(text) - }, []) +export default async function Roof2Page() { + await initCheck() return ( <> diff --git a/src/components/Roof2.jsx b/src/components/Roof2.jsx index 2ad0f8c8..102a7bea 100644 --- a/src/components/Roof2.jsx +++ b/src/components/Roof2.jsx @@ -1,3 +1,5 @@ +'use client' + import { useCanvas } from '@/hooks/useCanvas' import { useEffect, useState, useRef } from 'react' import { Mode, useMode } from '@/hooks/useMode' diff --git a/src/components/common/grid/QGrid.jsx b/src/components/common/grid/QGrid.jsx index 2611f078..99c3fd62 100644 --- a/src/components/common/grid/QGrid.jsx +++ b/src/components/common/grid/QGrid.jsx @@ -7,7 +7,6 @@ import 'ag-grid-community/styles/ag-grid.css' import 'ag-grid-community/styles/ag-theme-quartz.css' export default function QGrid(props) { - console.log('QGrid props:', props) const { gridData, gridColumns, isPageable = true } = props const [count, setCount] = useState(0) const [clickedCount, setClickedCount] = useState(0) diff --git a/src/lib/authActions.js b/src/lib/authActions.js index e1968efe..1ca7bd31 100644 --- a/src/lib/authActions.js +++ b/src/lib/authActions.js @@ -20,7 +20,8 @@ export async function getSession() { console.log('session:', session) if (!session.isLoggedIn) { - session.isLoggedIn = defaultSession.isLoggedIn + // session.isLoggedIn = defaultSession.isLoggedIn + session.isLoggedIn = false } return session @@ -35,24 +36,20 @@ export async function login(formData) { console.log('id:', userId) console.log('password:', password) - // const user = { - // id: 1, - // name: 'jinsoo Kim', - // email: 'jinsoo.kim@example.com', - // } - const loginUser = await getUserByIdAndPassword({ userId, password }) - console.log('loginUser:', loginUser) + // const loginUser = await getUserByIdAndPassword({ userId, password }) + const loginUser = { + id: 1, + userId: 'test123', + name: 'jinsoo Kim', + email: 'jinsoo.kim@example.com', + } if (!loginUser) { throw Error('Wrong Credentials!') } - // session.id = user.id - // session.email = user.email - session.userId = loginUser.USER_ID - session.saleStoreId = loginUser.SALE_STORE_ID - session.name = loginUser.NAME - session.mail = loginUser.MAIL + session.name = loginUser.USER_ID + session.email = loginUser.SALE_STORE_ID session.isLoggedIn = true console.log('session:', session) diff --git a/src/lib/session.js b/src/lib/session.js index 95d51411..ff5a2078 100644 --- a/src/lib/session.js +++ b/src/lib/session.js @@ -1,10 +1,4 @@ -export const defaultSession = { - userId: null, - saleStoreId: null, - name: null, - mail: null, - isLoggedIn: false, -} +export const defaultSession = {} export const sessionOptions = { password: process.env.SESSION_SECRET, diff --git a/src/lib/user.js b/src/lib/user.js index bdc619ee..d79e958a 100644 --- a/src/lib/user.js +++ b/src/lib/user.js @@ -1,5 +1,7 @@ 'use server' +import { getSession } from './authActions' + const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient() @@ -29,3 +31,11 @@ export async function getUsers() { }, }) } + +export async function checkSession() { + const session = await getSession() + + return { + session, + } +} diff --git a/src/util/context-util.js b/src/util/context-util.js index 0d14f1d9..0179fdf0 100644 --- a/src/util/context-util.js +++ b/src/util/context-util.js @@ -30,7 +30,7 @@ const CanvasWithContextMenu = forwardRef(({ canvasProps }, ref) => { document.addEventListener('click', handleOutsideClick) return () => { - canvasProps.upperCanvasEl.removeEventListener('contextmenu', handleContextMenu) + // canvasProps.upperCanvasEl.removeEventListener('contextmenu', handleContextMenu) document.removeEventListener('click', handleClick) document.removeEventListener('click', handleOutsideClick) } diff --git a/src/util/session-util.js b/src/util/session-util.js new file mode 100644 index 00000000..ab8b120c --- /dev/null +++ b/src/util/session-util.js @@ -0,0 +1,10 @@ +import { checkSession } from '@/lib/user' +import { redirect } from 'next/navigation' + +export const initCheck = async () => { + const { session } = await checkSession() + + if (!session.isLoggedIn) { + redirect('/login') + } +}