diff --git a/client/src/components/phonebook-form/phonebook-form.component.jsx b/client/src/components/phonebook-form/phonebook-form.component.jsx index 4a27d97a8..e962a34c6 100644 --- a/client/src/components/phonebook-form/phonebook-form.component.jsx +++ b/client/src/components/phonebook-form/phonebook-form.component.jsx @@ -7,8 +7,28 @@ import PhoneFormItem, { PhoneItemFormatterValidation, } from "../form-items-formatted/phone-form-item.component"; import LayoutFormRow from "../layout-form-row/layout-form-row.component"; +import { HasRbacAccess } from "../rbac-wrapper/rbac-wrapper.component"; +import { connect } from "react-redux"; +import { createStructuredSelector } from "reselect"; +import { + selectAuthLevel, + selectBodyshop, +} from "../../redux/user/user.selectors"; +const mapStateToProps = createStructuredSelector({ + authLevel: selectAuthLevel, + bodyshop: selectBodyshop, +}); +const mapDispatchToProps = (dispatch) => ({ + //setUserLanguage: language => dispatch(setUserLanguage(language)) +}); +export default connect( + mapStateToProps, + mapDispatchToProps +)(PhonebookFormComponent); -export default function PhonebookFormComponent({ +export function PhonebookFormComponent({ + authLevel, + bodyshop, form, formLoading, handleDelete, @@ -17,6 +37,12 @@ export default function PhonebookFormComponent({ const { getFieldValue } = form; + const hasNoAccess = !HasRbacAccess({ + bodyshop, + authLevel, + action: "phonebook:edit", + }); + return (
form.submit()} type="primary" loading={formLoading} + disabled={hasNoAccess} > {t("general.actions.save")} - @@ -45,35 +77,35 @@ export default function PhonebookFormComponent({ - + - + - + - + - + - + - + - + - + @@ -87,7 +119,10 @@ export default function PhonebookFormComponent({ ]} name="email" > - + - + - + - +
diff --git a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx index 470cd3e26..7f3427706 100644 --- a/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx +++ b/client/src/components/production-board-kanban-card/production-board-kanban-card.component.jsx @@ -67,7 +67,7 @@ export default function ProductionBoardCard(technician, card) { ? `${card.employee_refinish_rel.first_name} ${card.employee_refinish_rel.last_name}` : "" }`} -
{`P: ${ +
{`CSR: ${ card.employee_csr_rel ? `${card.employee_csr_rel.first_name} ${card.employee_csr_rel.last_name}` : "" diff --git a/client/src/pages/phonebook/phonebook.page.component.jsx b/client/src/pages/phonebook/phonebook.page.component.jsx index e213745a2..89fff5949 100644 --- a/client/src/pages/phonebook/phonebook.page.component.jsx +++ b/client/src/pages/phonebook/phonebook.page.component.jsx @@ -10,15 +10,20 @@ import { useHistory, useLocation } from "react-router-dom"; import { createStructuredSelector } from "reselect"; import AlertComponent from "../../components/alert/alert.component"; import { QUERY_PHONEBOOK_PAGINATED } from "../../graphql/phonebook.queries"; -import { selectBodyshop } from "../../redux/user/user.selectors"; +import { + selectAuthLevel, + selectBodyshop, +} from "../../redux/user/user.selectors"; import ChatOpenButton from "../../components/chat-open-button/chat-open-button.component"; import { alphaSort } from "../../utils/sorters"; +import { HasRbacAccess } from "../../components/rbac-wrapper/rbac-wrapper.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, + authLevel: selectAuthLevel, }); -export function PhonebookPageComponent({ bodyshop }) { +export function PhonebookPageComponent({ bodyshop, authLevel }) { const searchParams = queryString.parse(useLocation().search); const { page, sortcolumn, sortorder, search, phonebookentry } = searchParams; const history = useHistory(); @@ -133,6 +138,11 @@ export function PhonebookPageComponent({ bodyshop }) { history.push({ search: queryString.stringify(searchParams) }); } }; + const hasNoAccess = !HasRbacAccess({ + bodyshop, + authLevel, + action: "phonebook:edit", + }); return ( )} -