From f18c80e847e46d4487d0c0dd271453276e03d70d Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 8 Oct 2025 09:30:59 +0800 Subject: [PATCH] Prevented unauthorized login --- src/pages/AssessorPage/Assessor.tsx | 19 ++++++++++--- src/pages/MainPage/Main.tsx | 44 +++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/pages/AssessorPage/Assessor.tsx b/src/pages/AssessorPage/Assessor.tsx index 1c5a406..9ce5428 100644 --- a/src/pages/AssessorPage/Assessor.tsx +++ b/src/pages/AssessorPage/Assessor.tsx @@ -59,6 +59,7 @@ export default () => { } const checkDivision = async () => { + console.log('AAAA') const building = await checkAccess('BUILDING ORDER OF PAYMENT') setIsBuilding(building) @@ -70,6 +71,7 @@ export default () => { } const getListForPrinting = async () => { + console.log('BBB') try { const response = await ofetch(API + 'get-listopprinting-electrical', { parseResponse: JSON.parse }) setApplicationList(response.result) @@ -89,18 +91,27 @@ export default () => { const nameStore = sessionStorage.getItem('name') setEmployeeId(parseInt(idStore!)) setEmployeeName(nameStore!) + + if (employeeId() === 0 || employeeId().toString() === 'NaN') { + removeEmployee() + navigate('/', { replace: true }) + return false + } + return true } const logout = async () => { removeEmployee() navigate('/') - // console.log('yeah') } onMount(async () => { - checkLogged() - await checkDivision() - await getListForPrinting() + const logged = await checkLogged() + + if (logged) { + await checkDivision() + await getListForPrinting() + } }) return ( diff --git a/src/pages/MainPage/Main.tsx b/src/pages/MainPage/Main.tsx index 00739c1..27e5af4 100644 --- a/src/pages/MainPage/Main.tsx +++ b/src/pages/MainPage/Main.tsx @@ -1,5 +1,5 @@ import './Main.sass' -import { Logo, Link, Page, Row, Padding, ModalButton, Box, Button, Modal, Column } from '../../components/' +import { Logo, Link, Page, Row, Padding, ModalButton, Box, Button, Modal, Column, Clickable } from '../../components/' import { FiLogOut } from 'solid-icons/fi' import { Tabs } from '@kobalte/core/tabs' import { ofetch } from 'ofetch' @@ -8,6 +8,7 @@ import dayjs from 'dayjs' import { checkConnection, createPdf } from '../../utils/functions' import { FaSolidThumbsUp } from 'solid-icons/fa' import { _employeeName } from '../../stores/employee' +import { useNavigate } from '@solidjs/router' // @ts-ignore // import * as openssl from 'openssl-nodejs' @@ -16,6 +17,8 @@ const PESO = import.meta.env.VITE_PESO const ID = import.meta.env.VITE_HEADID export default () => { + const navigate = useNavigate() + const [totalOp, setTotalOp] = createSignal(0) const [assessor, setAssessor] = createSignal('') const [dateOp, setDateOp] = createSignal('') @@ -40,6 +43,9 @@ export default () => { const [approved, setApproved] = createSignal(false) const [approvedApplication, setApprovedApplication] = createSignal('') + const [employeeId, setEmployeeId] = createSignal(0) + const [employeeName, setEmployeeName] = createSignal('') + const getListForApproval = async () => { try { const response = await ofetch(API + 'get-listopapproval-electrical', { parseResponse: JSON.parse }) @@ -168,8 +174,36 @@ export default () => { createPdf() } + const removeEmployee = () => { + sessionStorage.removeItem('id') + sessionStorage.removeItem('name') + } + + const checkLogged = async () => { + const idStore = sessionStorage.getItem('id') + const nameStore = sessionStorage.getItem('name') + setEmployeeId(parseInt(idStore!)) + setEmployeeName(nameStore!) + + if (employeeId() === 0 || employeeId().toString() === 'NaN') { + removeEmployee() + navigate('/', { replace: true }) + return false + } + return true + } + + const logout = async () => { + removeEmployee() + navigate('/') + } + onMount(async () => { - await load() + const logged = await checkLogged() + + if (logged) { + await load() + } }) return ( @@ -185,13 +219,13 @@ export default () => { - {_employeeName.get()} - + {employeeName()} + Logout - +