From c367104059e6cdcac3f1e2308c8895e325dfff09 Mon Sep 17 00:00:00 2001 From: JamesNg Date: Mon, 10 Nov 2025 23:16:22 -0500 Subject: [PATCH 1/2] add Profile icon and bold currently logged in user in all searches, disabled logged in user from editing his/her admin access level #2043 --- client/src/components/user-admin/EditUsers.jsx | 10 +++++++--- .../src/components/user-admin/UserManagement.jsx | 8 +++++--- .../user-admin/UserPermissionSearch.jsx | 16 ++++++++++------ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/client/src/components/user-admin/EditUsers.jsx b/client/src/components/user-admin/EditUsers.jsx index 30defbee2..5ce27ffee 100644 --- a/client/src/components/user-admin/EditUsers.jsx +++ b/client/src/components/user-admin/EditUsers.jsx @@ -16,6 +16,7 @@ import { InputLabel, } from '@mui/material'; import '../../sass/UserAdmin.scss'; +import useAuth from '../../hooks/useAuth'; // child of UserAdmin. Displays form to update users. const EditUsers = ({ @@ -30,6 +31,10 @@ const EditUsers = ({ const [projectValue, setProjectValue] = useState(''); // State and handler for form in EditUsers const [isActive, setIsActive] = useState(userToEdit.isActive); const [isAdmin, setIsAdmin] = useState(userToEdit.accessLevel === 'admin'); + const { auth } = useAuth(); + + console.log('user to edit', userToEdit); + console.log('auth user', auth?.user); // Boolean to check if the current user is the super admin const isSuperAdmin = userToEdit.accessLevel === 'superadmin'; @@ -64,7 +69,6 @@ const EditUsers = ({ ) { const newProjects = [...userManagedProjects, projectValue]; updateUserDb(userToEdit, projectValue, 'add'); - // updateUserDb(userToEdit, newProjects); setUserManagedProjects(newProjects); setProjectValue(''); } else { @@ -78,7 +82,6 @@ const EditUsers = ({ (p) => p !== projectToRemove ); updateUserDb(userToEdit, projectToRemove, 'remove'); - // updateUserDb(userToEdit, newProjects); setUserManagedProjects(newProjects); } }; @@ -128,7 +131,8 @@ const EditUsers = ({ } label={isAdmin || isSuperAdmin ? 'Yes' : 'No'} diff --git a/client/src/components/user-admin/UserManagement.jsx b/client/src/components/user-admin/UserManagement.jsx index 1ead7238c..82673d79b 100644 --- a/client/src/components/user-admin/UserManagement.jsx +++ b/client/src/components/user-admin/UserManagement.jsx @@ -9,7 +9,8 @@ import { ListItem, ListItemButton, } from '@mui/material'; - +import useAuth from '../../hooks/useAuth'; +import PersonIcon from '@mui/icons-material/Person'; import '../../sass/UserAdmin.scss'; const Buttonsx = { @@ -21,6 +22,7 @@ const UserManagement = ({ users, setUserToEdit }) => { let searchResults = []; const [searchResultType, setSearchResultType] = useState('name'); // Which results will diplay const [searchTerm, setSearchTerm] = useState(''); // Serch term for the user/email search + const { auth } = useAuth(); // Swaps the buttons and displayed panels for the search results, by email or by name const buttonSwap = () => @@ -141,8 +143,8 @@ const UserManagement = ({ users, setUserToEdit }) => { onClick={() => setUserToEdit(u)} > {searchResultType === 'name' - ? `${u.name?.firstName} ${u.name?.lastName} ( ${u.email} )` - : `${u.email} ( ${u.name?.firstName} ${u.name?.lastName} )`} + ? (u._id === auth.user._id) ? (<>{u.name?.firstName} {u.name?.lastName} ( {u.email} )) : `${u.name?.firstName} ${u.name?.lastName} ( ${u.email} )` + : (u._id === auth.user._id) ? (<>{u.email} ( {u.name?.firstName} {u.name?.lastName} )) : `${u.email} ( ${u.name?.firstName} ${u.name?.lastName} )`} ); diff --git a/client/src/components/user-admin/UserPermissionSearch.jsx b/client/src/components/user-admin/UserPermissionSearch.jsx index 96f1a950f..5c0fba1de 100644 --- a/client/src/components/user-admin/UserPermissionSearch.jsx +++ b/client/src/components/user-admin/UserPermissionSearch.jsx @@ -11,7 +11,8 @@ import { ListItemButton, } from '@mui/material'; import { useLocation } from 'react-router-dom'; - +import useAuth from '../../hooks/useAuth'; +import PersonIcon from '@mui/icons-material/Person'; import '../../sass/UserAdmin.scss'; const Buttonsx = { @@ -20,6 +21,7 @@ const Buttonsx = { }; const DummyComponent = ({ data, isProjectLead, setUserToEdit }) => { + const { auth } = useAuth(); return ( {data.map((u, idx) => { @@ -50,7 +52,9 @@ const DummyComponent = ({ data, isProjectLead, setUserToEdit }) => { - {`${name.firstName.toUpperCase()} ${name.lastName.toUpperCase()} ( ${email.toUpperCase()} )`} + {(_id === auth?.user?._id) ? + (<>{`${name.firstName.toUpperCase()} ${name.lastName.toUpperCase()} ( ${email.toUpperCase()} )`}) + : `${name.firstName.toUpperCase()} ${name.lastName.toUpperCase()} ( ${email.toUpperCase()} )`} @@ -81,13 +85,13 @@ const DummyComponent = ({ data, isProjectLead, setUserToEdit }) => { - {name.firstName.toUpperCase() + - ' ' + - name.lastName.toUpperCase()} + {(_id === auth?.user?._id) ? + (<>{`${name.firstName.toUpperCase()} ${name.lastName.toUpperCase()}`}) : + `${name.firstName.toUpperCase()} ${name.lastName.toUpperCase()}`} - + {u.managedProjectName} From 8092225edda693898bfbc9d50bf97fbfe034a0bb Mon Sep 17 00:00:00 2001 From: JamesNg Date: Mon, 24 Nov 2025 21:58:23 -0500 Subject: [PATCH 2/2] remove console logs --- client/src/components/user-admin/EditUsers.jsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/client/src/components/user-admin/EditUsers.jsx b/client/src/components/user-admin/EditUsers.jsx index 5ce27ffee..5dfa731a7 100644 --- a/client/src/components/user-admin/EditUsers.jsx +++ b/client/src/components/user-admin/EditUsers.jsx @@ -18,7 +18,7 @@ import { import '../../sass/UserAdmin.scss'; import useAuth from '../../hooks/useAuth'; -// child of UserAdmin. Displays form to update users. + const EditUsers = ({ userToEdit, backToSearch, @@ -33,9 +33,6 @@ const EditUsers = ({ const [isAdmin, setIsAdmin] = useState(userToEdit.accessLevel === 'admin'); const { auth } = useAuth(); - console.log('user to edit', userToEdit); - console.log('auth user', auth?.user); - // Boolean to check if the current user is the super admin const isSuperAdmin = userToEdit.accessLevel === 'superadmin'; @@ -52,8 +49,6 @@ const EditUsers = ({ setUserManagedProjects(userToEdit.managedProjects); }, [userToEdit]); - console.log(userManagedProjects) - const userProjectsToDisplay = activeProjects.filter((item) => userProjects.includes(item[0]) );