diff --git a/frontend/src/accessRules.js b/frontend/src/accessRules.js
index e282def..423bb03 100644
--- a/frontend/src/accessRules.js
+++ b/frontend/src/accessRules.js
@@ -4,7 +4,14 @@ const rules = {
},
admin: {
- static: ["drawer-admin-items:view", "tickets-manager:showall"],
+ static: [
+ "drawer-admin-items:view",
+ "tickets-manager:showall",
+ "user-modal:editProfile",
+ "user-modal:editQueues",
+ "ticket-options:deleteTicket",
+ "contacts-page:deleteContact",
+ ],
},
};
diff --git a/frontend/src/components/Can/index.js b/frontend/src/components/Can/index.js
index 96837c5..9d9e27a 100644
--- a/frontend/src/components/Can/index.js
+++ b/frontend/src/components/Can/index.js
@@ -36,4 +36,4 @@ Can.defaultProps = {
no: () => null,
};
-export default Can;
+export { Can };
diff --git a/frontend/src/components/TicketOptionsMenu/index.js b/frontend/src/components/TicketOptionsMenu/index.js
index 48d1035..457684b 100644
--- a/frontend/src/components/TicketOptionsMenu/index.js
+++ b/frontend/src/components/TicketOptionsMenu/index.js
@@ -1,4 +1,4 @@
-import React, { useEffect, useRef, useState } from "react";
+import React, { useContext, useEffect, useRef, useState } from "react";
import MenuItem from "@material-ui/core/MenuItem";
import Menu from "@material-ui/core/Menu";
@@ -8,11 +8,14 @@ import api from "../../services/api";
import ConfirmationModal from "../ConfirmationModal";
import TransferTicketModal from "../TransferTicketModal";
import toastError from "../../errors/toastError";
+import { Can } from "../Can";
+import { AuthContext } from "../../context/Auth/AuthContext";
const TicketOptionsMenu = ({ ticket, menuOpen, handleClose, anchorEl }) => {
const [confirmationOpen, setConfirmationOpen] = useState(false);
const [transferTicketModalOpen, setTransferTicketModalOpen] = useState(false);
const isMounted = useRef(true);
+ const { user } = useContext(AuthContext);
useEffect(() => {
return () => {
@@ -62,9 +65,16 @@ const TicketOptionsMenu = ({ ticket, menuOpen, handleClose, anchorEl }) => {
open={menuOpen}
onClose={handleClose}
>
-
+ (
+
+ )}
+ />
+
diff --git a/frontend/src/components/TicketsManager/index.js b/frontend/src/components/TicketsManager/index.js
index 3471742..691c906 100644
--- a/frontend/src/components/TicketsManager/index.js
+++ b/frontend/src/components/TicketsManager/index.js
@@ -18,7 +18,7 @@ import TabPanel from "../TabPanel";
import { i18n } from "../../translate/i18n";
import { AuthContext } from "../../context/Auth/AuthContext";
-import Can from "../Can";
+import { Can } from "../Can";
import TicketsQueueSelect from "../TicketsQueueSelect";
import { Button } from "@material-ui/core";
import { useLocalStorage } from "../../hooks/useLocalStorage";
diff --git a/frontend/src/components/UserModal/index.js b/frontend/src/components/UserModal/index.js
index b1539c8..3eaf108 100644
--- a/frontend/src/components/UserModal/index.js
+++ b/frontend/src/components/UserModal/index.js
@@ -23,6 +23,7 @@ import { i18n } from "../../translate/i18n";
import api from "../../services/api";
import toastError from "../../errors/toastError";
import QueueSelect from "../QueueSelect";
+import { Can } from "../Can";
const useStyles = makeStyles(theme => ({
root: {
@@ -182,25 +183,40 @@ const UserModal = ({ open, onClose, userId }) => {
className={classes.formControl}
margin="dense"
>
-
- {i18n.t("userModal.form.profile")}
-
-
-
-
-
+ (
+ <>
+
+ {i18n.t("userModal.form.profile")}
+
+
+
+
+
+
+ >
+ )}
+ />
- setSelectedQueueIds(values)}
+ (
+ setSelectedQueueIds(values)}
+ />
+ )}
/>
diff --git a/frontend/src/context/Auth/AuthContext.js b/frontend/src/context/Auth/AuthContext.js
index 87bd9ae..a2ea303 100644
--- a/frontend/src/context/Auth/AuthContext.js
+++ b/frontend/src/context/Auth/AuthContext.js
@@ -5,11 +5,18 @@ import useAuth from "./useAuth";
const AuthContext = createContext();
const AuthProvider = ({ children }) => {
- const { loading, user, isAuth, handleLogin, handleLogout } = useAuth();
+ const {
+ loading,
+ user,
+ setUser,
+ isAuth,
+ handleLogin,
+ handleLogout,
+ } = useAuth();
return (
{children}
diff --git a/frontend/src/layout/MainListItems.js b/frontend/src/layout/MainListItems.js
index e191272..e8e68b2 100644
--- a/frontend/src/layout/MainListItems.js
+++ b/frontend/src/layout/MainListItems.js
@@ -18,7 +18,7 @@ import AccountTreeOutlinedIcon from "@material-ui/icons/AccountTreeOutlined";
import { i18n } from "../translate/i18n";
import { WhatsAppsContext } from "../context/WhatsApp/WhatsAppsContext";
import { AuthContext } from "../context/Auth/AuthContext";
-import Can from "../components/Can";
+import { Can } from "../components/Can";
function ListItemLink(props) {
const { icon, primary, to, className } = props;
diff --git a/frontend/src/pages/Contacts/index.js b/frontend/src/pages/Contacts/index.js
index de3f5f8..d4204d7 100644
--- a/frontend/src/pages/Contacts/index.js
+++ b/frontend/src/pages/Contacts/index.js
@@ -33,6 +33,7 @@ import MainHeaderButtonsWrapper from "../../components/MainHeaderButtonsWrapper"
import MainContainer from "../../components/MainContainer";
import toastError from "../../errors/toastError";
import { AuthContext } from "../../context/Auth/AuthContext";
+import { Can } from "../../components/Can";
const reducer = (state, action) => {
if (action.type === "LOAD_CONTACTS") {
@@ -318,15 +319,21 @@ const Contacts = () => {
>
- {
- setConfirmOpen(true);
- setDeletingContact(contact);
- }}
- >
-
-
+ (
+ {
+ setConfirmOpen(true);
+ setDeletingContact(contact);
+ }}
+ >
+
+
+ )}
+ />
))}