From b91480143b3cc5c256d8fecc3fc0cbbe1a81fc59 Mon Sep 17 00:00:00 2001 From: wahyuun Date: Wed, 20 Mar 2024 17:24:21 +0700 Subject: [PATCH] update akses untuk super admin --- .../Master/MasterRoles/DialogMenuRoles.js | 48 +++++++++++++++++-- src/views/Master/MasterRoles/index.js | 22 +++++---- src/views/SimproV2/Divisi/index.js | 10 +--- src/views/SimproV2/ResourceWorker/index.js | 5 -- src/views/SimproV2/Satuan/index.js | 3 -- 5 files changed, 58 insertions(+), 30 deletions(-) diff --git a/src/views/Master/MasterRoles/DialogMenuRoles.js b/src/views/Master/MasterRoles/DialogMenuRoles.js index a00128e..0388eab 100644 --- a/src/views/Master/MasterRoles/DialogMenuRoles.js +++ b/src/views/Master/MasterRoles/DialogMenuRoles.js @@ -27,6 +27,7 @@ export default class DialogMenuRoles extends Component { stateCreate: [], stateUpdate: [], stateDelete: [], + role_name: props.role_name || '', stateReadAll: false, stateCreateAll: false, stateUpdateAll: false, @@ -35,10 +36,12 @@ export default class DialogMenuRoles extends Component { company_id: props.company_id || null, } } + async componentDidMount() { this.props.showDialog(this.showDialog); this.getAllMenu(); } + async componentDidUpdate() { if (this.state.isParentClick === true) { const { idRoles } = this.props @@ -50,21 +53,26 @@ export default class DialogMenuRoles extends Component { this.setState({ isParentClick: false, id: idRoles }); } } + showDialog = () => { this.setState({ isParentClick: true }); } + getAllMenu = async () => { const payload = { "paging": { "start": 0, "length": -1 }, - "columns": [ - { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" } - ], + "columns": [], "joins": [ { "name": "t_roles_menu", "column_join": "menu_id", "column_results": ["create", "update", "delete", "read"] }, { "name": "m_menu", "column_join": "menu_id", "column_results": ["name"] } ], "orders": { "columns": ["id"], "ascending": false } } + if (this.state.role_name !== "Super Admin") { + payload.columns.push( + { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" } + ) + } const result = await axios .post(MENU_COMPANY_SEARCH, payload, config) .then(res => res) @@ -73,9 +81,9 @@ export default class DialogMenuRoles extends Component { this.setState({ menu: result.data.data }, () => { this.setStateMenu(false); }); - } else { } } + setStateMenu = edit => { const stateMenu = []; this.state.menu.map((val) => { @@ -89,6 +97,7 @@ export default class DialogMenuRoles extends Component { }) }) } + setStateRead = edit => { const stateRead = []; this.state.menu.map((val) => { @@ -102,6 +111,7 @@ export default class DialogMenuRoles extends Component { }) }) } + setStateCreate = edit => { const stateCreate = []; this.state.menu.map((val) => { @@ -115,6 +125,7 @@ export default class DialogMenuRoles extends Component { }) }) } + setStateUpdate = edit => { const stateUpdate = []; this.state.menu.map((val) => { @@ -128,6 +139,7 @@ export default class DialogMenuRoles extends Component { }) }) } + setStateDelete = edit => { const stateDelete = []; this.state.menu.map((val) => { @@ -141,6 +153,7 @@ export default class DialogMenuRoles extends Component { }) }) } + checkMenuRoles = () => { let copyStateMenu = [...this.state.stateMenu]; this.props.menuRoles.map((val, indexMenu) => { @@ -158,6 +171,7 @@ export default class DialogMenuRoles extends Component { } }) } + checkReadRoles = () => { let copyStateRead = [...this.state.stateRead]; this.props.menuRoles.map((val) => { @@ -177,6 +191,7 @@ export default class DialogMenuRoles extends Component { } }) } + checkCreateRoles = () => { let copyStateCreate = [...this.state.stateCreate]; this.props.menuRoles.map((val) => { @@ -196,6 +211,7 @@ export default class DialogMenuRoles extends Component { } }) } + checkUpdateRoles = () => { let copyStateUpdate = [...this.state.stateUpdate]; this.props.menuRoles.map((val) => { @@ -215,6 +231,7 @@ export default class DialogMenuRoles extends Component { } }) } + checkDeleteRoles = () => { let copyStateDelete = [...this.state.stateDelete]; this.props.menuRoles.map((val) => { @@ -234,26 +251,32 @@ export default class DialogMenuRoles extends Component { } }) } + getIndexDataMenu = (id) => { let index = this.state.menu.findIndex(obj => obj.id === id); return index } + getIndexDataCreate = (id) => { let index = this.state.stateCreate.findIndex(obj => obj.id === id); return index } + getIndexDataDelete = (id) => { let index = this.state.stateDelete.findIndex(obj => obj.id === id); return index } + getIndexDataRead = (id) => { let index = this.state.stateRead.findIndex(obj => obj.id === id); return index } + getIndexDataUpdate = (id) => { let index = this.state.stateUpdate.findIndex(obj => obj.id === id); return index } + handleSave = () => { const { stateMenu, @@ -280,14 +303,17 @@ export default class DialogMenuRoles extends Component { this.props.closeDialog('save', arrayData); this.setState({ id: 0 }); } + handleCancel = () => { this.props.closeDialog('cancel', 'none') } + handleChangeCheckbox = (checked, index) => { let copyStateMenu = [...this.state.stateMenu]; copyStateMenu[index] = checked; this.setState({ stateMenu: copyStateMenu }) } + handleChangeCheckboxRead = (checked, index, menuItem = null, menuIdxList = []) => { let copyStateRead = [...this.state.stateRead]; copyStateRead[index] = checked; @@ -312,6 +338,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateRead: copyStateRead }) } + handleChangeCheckboxCreate = (checked, index, menuItem = null, menuIdxList = []) => { let copyStateCreate = [...this.state.stateCreate]; copyStateCreate[index] = checked; @@ -336,6 +363,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateCreate: copyStateCreate }) } + handleChangeCheckboxEdit = (checked, index, menuItem = null, menuIdxList = []) => { let copyStateEdit = [...this.state.stateUpdate]; copyStateEdit[index] = checked; @@ -360,6 +388,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateUpdate: copyStateEdit }) } + handleChangeCheckboxDelete = (checked, index, menuItem = null, menuIdxList = []) => { let copyStateDelete = [...this.state.stateDelete]; copyStateDelete[index] = checked; @@ -384,6 +413,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateDelete: copyStateDelete }) } + handleChangeCheckboxReadAll = (checked) => { let copyStateRead = [...this.state.stateRead]; copyStateRead.map((val, index) => { @@ -391,6 +421,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateRead: copyStateRead }) } + handleChangeCheckboxCreateAll = (checked, index) => { let copyStateCreate = [...this.state.stateCreate]; copyStateCreate.map((val, index) => { @@ -398,6 +429,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateCreate: copyStateCreate }) } + handleChangeCheckboxEditAll = (checked, index) => { let copyStateEdit = [...this.state.stateUpdate]; copyStateEdit.map((val, index) => { @@ -405,6 +437,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateUpdate: copyStateEdit }) } + handleChangeCheckboxDeleteAll = (checked, index) => { let copyStateDelete = [...this.state.stateDelete]; copyStateDelete.map((val, index) => { @@ -412,6 +445,7 @@ export default class DialogMenuRoles extends Component { }) this.setState({ stateDelete: copyStateDelete }) } + renderForm = () => { const { menu, stateRead, stateCreate, stateUpdate, stateDelete } = this.state; let menuIdxList = [] @@ -449,6 +483,7 @@ export default class DialogMenuRoles extends Component { ); }; + renderAll = () => { return ( @@ -460,9 +495,11 @@ export default class DialogMenuRoles extends Component { ) } + checkArray = (val) => { return val === false; } + handleAllChecked = (checked) => { this.setState({ allChecked: !this.state.allChecked }); if (checked === true) { @@ -486,6 +523,7 @@ export default class DialogMenuRoles extends Component { }) } } + render() { return ( @@ -523,4 +561,4 @@ export default class DialogMenuRoles extends Component { ) } -} \ No newline at end of file +} diff --git a/src/views/Master/MasterRoles/index.js b/src/views/Master/MasterRoles/index.js index 3d1137d..ff5045f 100644 --- a/src/views/Master/MasterRoles/index.js +++ b/src/views/Master/MasterRoles/index.js @@ -156,9 +156,9 @@ class index extends Component { { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }, ) } else { - formData.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) + // formData.columns.push( + // { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, + // ) formData.joins.push( { "name": "m_company", "column_join": "company_id", "column_results": ["company_name"] } ) @@ -320,13 +320,17 @@ class index extends Component { handleMenuRoles = async (id) => { const formData = { "paging": { "start": 0, "length": -1 }, - "columns": [ - { "name": "role_id", "logic_operator": "=", "value": `${id}`, "operator": "AND" } - ], + "columns": [], "joins": [{ "name": "m_menu", "column_join": "menu_id", "column_results": ["parent_id", "name"] }], "orders": { "columns": ["id"], "ascending": false } } + if (this.state.role_name !== "Super Admin") { + formData.columns.push( + { "name": "role_id", "logic_operator": "=", "value": `${id}`, "operator": "AND" } + ) + } + const result = await axios .post(ROLEMENU_SEARCH, formData, this.state.config) .then(res => res) @@ -412,9 +416,9 @@ class index extends Component { { "name": "company_id", "logic_operator": "=", "value": this.state.company_id, "operator": "AND" }, ) } else { - formData.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) + // formData.columns.push( + // { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, + // ) formData.joins.push( { "name": "m_company", "column_join": "company_id", "column_results": ["company_name"] } ) diff --git a/src/views/SimproV2/Divisi/index.js b/src/views/SimproV2/Divisi/index.js index d423c8f..627df0d 100644 --- a/src/views/SimproV2/Divisi/index.js +++ b/src/views/SimproV2/Divisi/index.js @@ -4,7 +4,7 @@ import React, { useState, useEffect, useMemo } from 'react'; import SweetAlert from 'react-bootstrap-sweetalert'; import axios from "../../../const/interceptorApi" import { Card, CardBody, CardHeader, Col, Row, Input } from 'reactstrap'; -import { DIVISI_LIST, DIVISI_ADD, DIVISI_EDIT, DIVISI_DELETE, DIVISI_SEARCH, COMPANY_MANAGEMENT_LIST } from '../../../const/ApiConst'; +import { DIVISI_ADD, DIVISI_EDIT, DIVISI_DELETE, DIVISI_SEARCH, COMPANY_MANAGEMENT_LIST } from '../../../const/ApiConst'; import { NotificationContainer, NotificationManager } from 'react-notifications'; import { Pagination, Button, Tooltip, Table, Spin } from 'antd'; import { useTranslation } from 'react-i18next'; @@ -120,9 +120,6 @@ const ProjectType = ({ params, ...props }) => { { "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }, ) } else { - payload.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) payload.joins.push( { name: "m_company", column_join: "company_id", column_results: ["company_name"] } ) @@ -183,9 +180,6 @@ const ProjectType = ({ params, ...props }) => { { "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }, ) } else { - payload.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) payload.joins.push( { name: "m_company", column_join: "company_id", column_results: ["company_name"] } ) @@ -414,7 +408,7 @@ const ProjectType = ({ params, ...props }) => { : null } - + { diff --git a/src/views/SimproV2/ResourceWorker/index.js b/src/views/SimproV2/ResourceWorker/index.js index 9219541..7b0faaf 100644 --- a/src/views/SimproV2/ResourceWorker/index.js +++ b/src/views/SimproV2/ResourceWorker/index.js @@ -120,7 +120,6 @@ const ResourceWorker = ({ params, ...props }) => { const getDivisiList = async () => { const formData = { - "paging": { "start": 0, "length": -1 }, "orders": { "columns": ["id"], "ascending": false }, "columns": [], } @@ -129,10 +128,6 @@ const ResourceWorker = ({ params, ...props }) => { formData.columns.push( { "name": "company_id", "logic_operator": "=", "value": company_id, "operator": "AND" }, ) - } else { - formData.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) } const result = await axios diff --git a/src/views/SimproV2/Satuan/index.js b/src/views/SimproV2/Satuan/index.js index 89cfad8..84c227f 100644 --- a/src/views/SimproV2/Satuan/index.js +++ b/src/views/SimproV2/Satuan/index.js @@ -127,9 +127,6 @@ const Satuan = ({ params, ...props }) => { { "name": "company_id", "logic_operator": "=", "value": parseInt(company_id), "operator": "AND" }, ) } else { - payload.columns.push( - { "name": "company_id", "logic_operator": "is null", "value": "", "operator": "AND" }, - ) payload.joins.push( { name: "m_company", column_join: "company_id", column_results: ["company_name"] } )