From 760e4eafce87b8954d6939c8588727495b4c16b7 Mon Sep 17 00:00:00 2001 From: Lixian Zhou Date: Tue, 10 Mar 2026 15:21:00 -0400 Subject: [PATCH] commit --- client/src/App.js | 2 + client/src/components/admin/Permission.js | 102 ++++++++++++++++++ .../components/customers/UpdateCustomer.js | 2 +- .../src/components/customers/ViewCustomer.js | 2 +- .../components/events/EventsMultipleList.js | 3 +- client/src/components/home/menu.js | 20 ++++ 6 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 client/src/components/admin/Permission.js diff --git a/client/src/App.js b/client/src/App.js index 3b5cb73..3255440 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -25,6 +25,7 @@ import ViewEmployee from "./components/employees/ViewEmployee"; import CreateRoute from "./components/trans-routes/CreateRoute"; import Admin from './components/admin/Admin'; import CustomerReport from "./components/admin/CustomerReport"; +import Permission from "./components/admin/Permission"; import Login from "./components/login/Login"; import RoutesHistory from "./components/trans-routes/RoutesHistory"; import RouteTemplatesList from "./components/trans-routes/RouteTemplatesList"; @@ -225,6 +226,7 @@ function App() { }> } /> } /> + } /> } /> diff --git a/client/src/components/admin/Permission.js b/client/src/components/admin/Permission.js new file mode 100644 index 0000000..ee514a8 --- /dev/null +++ b/client/src/components/admin/Permission.js @@ -0,0 +1,102 @@ +import React, { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { Breadcrumb } from "react-bootstrap"; +import { AuthService, EmployeeService } from "../../services"; + +const Permission = () => { + const navigate = useNavigate(); + const [employees, setEmployees] = useState([]); + const [keyword, setKeyword] = useState(""); + const [showInactive, setShowInactive] = useState(true); + + useEffect(() => { + if (!AuthService.canViewEmployees() && !AuthService.canAddOrEditEmployees()) { + window.alert("You haven't login yet OR this user does not have access to this page. Please change an admin account to login."); + AuthService.logout(); + navigate("/login"); + return; + } + + EmployeeService.getAllEmployees().then((data) => { + setEmployees(data?.data || []); + }); + }, []); + + const goToEdit = (id) => { + navigate(`/employees/edit/${id}`); + }; + + const displayedEmployees = (employees || []) + .filter((item) => (showInactive ? true : item?.status === "active")) + .filter((item) => (item?.name || "").toLowerCase().includes(keyword.toLowerCase())); + + return ( + <> +
+ + Home + Permission + +
+

Permission

+
+
+ +
+
+
+
+
+ Filter By Name:{" "} + setKeyword(e.currentTarget.value)} /> +
+
+ setShowInactive(!showInactive)} + /> + Show Inactive Employees +
+ + + + + + + + + + + + + {displayedEmployees.map((employee) => ( + + + + + + + + + ))} + +
NamePreferred NameUsernameStatusRoles
{employee?.name}{employee?.name_cn}{employee?.username}{employee?.status}{employee?.roles?.join(", ")} + +
+
+
+
+
+ + ); +}; + +export default Permission; diff --git a/client/src/components/customers/UpdateCustomer.js b/client/src/components/customers/UpdateCustomer.js index 9c1f59b..1d3bce7 100644 --- a/client/src/components/customers/UpdateCustomer.js +++ b/client/src/components/customers/UpdateCustomer.js @@ -1326,7 +1326,7 @@ const UpdateCustomer = () => { )}
Additional Information
-
+
Profile Picture