access object imported

This commit is contained in:
Carter 2025-03-06 11:53:32 -06:00
parent 6886c93760
commit eff8a544ba

View file

@ -1,8 +1,8 @@
import { Avatar, Box, Button, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, PaletteColor, Theme, useTheme } from "@mui/material";
import { Avatar, Box, Button, IconButton, ListItemIcon, ListItemText, Menu, MenuItem, PaletteColor, Theme, Tooltip, useTheme } from "@mui/material";
import { useGlobalState } from "../providers/StateContainer";
import { getSecondaryColour, getSignatureAccentColour } from "../services/whiteLabel";
import { makeStyles } from "@mui/styles";
import { LockOpen, Person, Lock, Settings, SupervisedUserCircle as TeamIcon, ExitToApp } from "@mui/icons-material";
import { LockOpen, Person, Lock, Settings, SupervisedUserCircle as TeamIcon, ExitToApp, PersonAdd } from "@mui/icons-material";
import { useState } from "react";
import UserTeamName from "./UserTeamName";
import React from "react";
@ -13,8 +13,12 @@ import UserAvatar from "./UserAvatar";
import { purple } from "@mui/material/colors";
import { useNavigate } from "react-router-dom";
import TeamDialog from "teams/TeamDialog";
import AccessObject from "./AccessObject";
const useStyles = makeStyles((theme: Theme) => ({
accessIcon: {
color: "var(--status-ok)"
},
userAvatar: {
color: "#fff",
backgroundColor: getSecondaryColour()["700" as keyof PaletteColor],
@ -91,6 +95,7 @@ export default function UserMenu(props: Props) {
// const allowedToCopyToken = user.allowedTo("copy-token");
const hasTeams = user.hasFeature ? user.hasFeature("teams") : false;
const [teamDialogIsOpen, setTeamDialogIsOpen] = useState<boolean>(false);
const [accessDialogOpen, setAccessDialogOpen] = useState<boolean>(false);
const navigate = useNavigate()
@ -131,6 +136,11 @@ export default function UserMenu(props: Props) {
setUserSettingsIsOpen(false)
}
const openAccessObject = () => {
setAccessDialogOpen(true);
closeUserMenu();
};
const handleLogout = () => {
closeUserMenu();
navigate("/logout");
@ -165,6 +175,8 @@ export default function UserMenu(props: Props) {
if (user.id().length < 1) return unauthenticatedUserMenu()
const hasAdmin = user.hasFeature ? user.hasFeature("admin") : false;
return (
<>
<Button
@ -230,6 +242,16 @@ export default function UserMenu(props: Props) {
<ListItemText primary="Select Team" />
</MenuItem>
)}
{hasAdmin && (
<Tooltip title="Access Object">
<MenuItem onClick={() => openAccessObject()} aria-label="Access Object" dense>
<ListItemIcon>
<PersonAdd className={classes.accessIcon} />
</ListItemIcon>
<ListItemText primary="Access Object" />
</MenuItem>
</Tooltip>
)}
<MenuItem onClick={handleLogout} aria-label="Sign Out" dense>
<ListItemIcon>
<ExitToApp className={classes.red} />
@ -239,6 +261,10 @@ export default function UserMenu(props: Props) {
</Menu>
<TeamDialog open={teamDialogIsOpen} setOpen={setTeamDialogIsOpen} />
<UserSettings isOpen={userSettingsIsOpen} closeDialogCallback={closeUserSettingsDialog} />
<AccessObject
isOpen={accessDialogOpen}
closeDialogCallback={() => setAccessDialogOpen(false)}
/>
</>
)
}