diff --git a/src/module/auth/api/funGetUserByCookies.ts b/src/module/auth/api/funGetUserByCookies.ts
new file mode 100644
index 0000000..a80515e
--- /dev/null
+++ b/src/module/auth/api/funGetUserByCookies.ts
@@ -0,0 +1,20 @@
+'use server'
+
+import { pwd_key_config, prisma } from "@/module/_global";
+import { unsealData } from "iron-session";
+import { cookies } from "next/headers";
+
+export default async function funGetUserByCookies() {
+ const sessionCookie = cookies().get("sessionCookieSDM");
+ const userId = await unsealData(sessionCookie!.value, {
+ password: pwd_key_config,
+ });
+
+ const user = await prisma.user.findUnique({
+ where: {
+ id: String(userId),
+ },
+ });
+
+ return { id: user?.id, name: user?.name, idVillage: user?.idVillage };
+}
\ No newline at end of file
diff --git a/src/module/auth/index.ts b/src/module/auth/index.ts
index 9c3273d..228515f 100644
--- a/src/module/auth/index.ts
+++ b/src/module/auth/index.ts
@@ -1,4 +1,5 @@
import funDetectCookies from "./api/funDetectCookies";
+import funGetUserByCookies from "./api/funGetUserByCookies";
import funSetCookies from "./api/funSetCookies";
import ViewLogin from "./login/view/view_login";
import ViewVerification from "./varification/view/view_verification";
@@ -8,4 +9,5 @@ export { ViewLogin }
export { ViewVerification }
export { ViewWelcome }
export { funSetCookies }
-export { funDetectCookies }
\ No newline at end of file
+export { funDetectCookies }
+export { funGetUserByCookies }
\ No newline at end of file
diff --git a/src/module/auth/varification/view/view_verification.tsx b/src/module/auth/varification/view/view_verification.tsx
index 3250127..d03f59a 100644
--- a/src/module/auth/varification/view/view_verification.tsx
+++ b/src/module/auth/varification/view/view_verification.tsx
@@ -38,8 +38,7 @@ export default function ViewVerification({ phone, otp, user }: IVerification) {
toast.success(setCookies.message)
if (setCookies.pertamaLogin == true)
return router.replace('/welcome')
- console.log(setCookies.pertamaLogin)
- return router.replace('/home')
+ return window.location.href = '/home';
} else {
toast.error(setCookies.message)
}
diff --git a/src/module/user/log/fun/createLogUser.tsx b/src/module/user/log/fun/createLogUser.tsx
index ac50290..457095b 100644
--- a/src/module/user/log/fun/createLogUser.tsx
+++ b/src/module/user/log/fun/createLogUser.tsx
@@ -1,20 +1,26 @@
import { prisma } from "@/module/_global";
+import { funDetectCookies, funGetUserByCookies } from "@/module/auth";
export default async function createLogUser({ act, desc, table, data }: { act: string, desc: string, table: string, data: string }) {
try {
- // diambil dari cookies
- const user = 'devAmalia'
+ // cek cookies
+ const cek = await funDetectCookies()
+ if (cek) {
+ const user = await funGetUserByCookies()
- await prisma.userLog.create({
- data: {
- idUser: user,
- action: act,
- desc: desc,
- idContent: data,
- tbContent: table
- }
- })
+ await prisma.userLog.create({
+ data: {
+ idUser: String(user.id),
+ action: act,
+ desc: desc,
+ idContent: data,
+ tbContent: table
+ }
+ })
+
+ return { success: true, message: "Success" }
+ }
return { success: true, message: "Success" }
diff --git a/src/module/user/profile/view/view_profile.tsx b/src/module/user/profile/view/view_profile.tsx
index 50000b1..5b8e22b 100644
--- a/src/module/user/profile/view/view_profile.tsx
+++ b/src/module/user/profile/view/view_profile.tsx
@@ -16,13 +16,18 @@ import { useState } from "react";
export default function ViewProfile() {
const [openModal, setOpenModal] = useState(false);
- async function onLogout() {
+ async function onLogout(val: boolean) {
try {
- await fetch('/api/auth/logout', {
- method: 'DELETE',
- });
- toast.success('Logout Success')
- window.location.href = '/';
+ if (val) {
+ await fetch('/api/auth/logout', {
+ method: 'DELETE',
+ });
+ toast.success('Logout Success')
+ window.location.href = '/';
+ }
+
+ setOpenModal(false)
+
} catch (error) {
console.error(error);
}
@@ -33,9 +38,9 @@ export default function ViewProfile() {
- { setOpenModal(true) }} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Info">
-
-
+ { setOpenModal(true) }} variant="light" bg={WARNA.bgIcon} size="lg" radius="lg" aria-label="Info">
+
+
setOpenModal(false)}
description="Apakah Anda yakin ingin Keluar?"
- onYes={() => onLogout()} />
+ onYes={(val) => onLogout(val)} />
>
)
}
\ No newline at end of file