| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| import React from "react"; |
| import { Table, Badge, Row, Col } from "react-bootstrap"; |
| import dateFormat from "dateformat"; |
| import { ClassTypes } from "../../../utils/XAEnums"; |
| import { |
| isEmpty, |
| isEqual, |
| isUndefined, |
| unionBy, |
| difference, |
| differenceWith, |
| forEach, |
| filter, |
| map |
| } from "lodash"; |
| |
| export const PolicyLogs = ({ data, reportdata }) => { |
| const { |
| objectName, |
| objectClassType, |
| parentObjectName, |
| createDate, |
| owner, |
| action, |
| objectId |
| } = data; |
| |
| /* CREATE LOGS VARIABLES */ |
| const createPolicyDetails = reportdata.filter((policy) => { |
| return ( |
| policy.action == "create" && |
| policy.attributeName != "Policy Resources" && |
| policy.attributeName != "Policy Conditions" && |
| policy.attributeName != "Policy Items" && |
| policy.attributeName != "DenyPolicy Items" && |
| policy.attributeName != "Allow Exceptions" && |
| policy.attributeName != "Deny Exceptions" && |
| policy.attributeName != "Masked Policy Items" && |
| policy.attributeName != "Row level filter Policy Items" && |
| policy.attributeName != "Validity Schedules" |
| ); |
| }); |
| |
| const createPolicyResources = reportdata.filter((resources) => { |
| return ( |
| resources.attributeName == "Policy Resources" && |
| resources.action == "create" |
| ); |
| }); |
| const createPolicyItems = reportdata.filter( |
| (obj) => obj.attributeName == "Policy Items" && obj.action == "create" |
| ); |
| const policyDetails = (details, resources) => { |
| let tablerow = []; |
| |
| const createDetailsPolicy = (val, newVal) => { |
| if (val == "Policy Labels") { |
| return (newVal = !isEmpty(JSON.parse(newVal)) |
| ? JSON.parse(newVal).join(", ") |
| : "--"); |
| } |
| if (val == "Policy Status") { |
| return (newVal = newVal === "false" ? "disabled" : "enabled"); |
| } |
| return !isEmpty(newVal) ? newVal : "--"; |
| }; |
| |
| details.map((policy) => { |
| return tablerow.push( |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {policy.attributeName} |
| </td> |
| <td className="table-warning policyitem-field"> |
| {!isEmpty(policy.newValue) |
| ? createDetailsPolicy(policy.attributeName, policy.newValue) |
| : "--"} |
| </td> |
| </tr> |
| ); |
| }); |
| |
| let newVal = {}; |
| resources.map((obj) => { |
| newVal = !isEmpty(obj.newValue) && JSON.parse(obj.newValue); |
| }); |
| |
| !isEmpty(newVal) && |
| Object.keys(newVal).map((key, index) => { |
| return tablerow.push( |
| <> |
| <tr key={index}> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key} |
| </td> |
| <td className="table-warning"> |
| {" "} |
| {newVal[key].values.join(", ")} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "exclude"} |
| </td> |
| <td className="table-warning"> |
| {newVal[key].isExcludes == false ? "false" : "true"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "recursive"} |
| </td> |
| <td className="table-warning policyitem-field"> |
| {newVal[key].isRecursive == false ? "false" : "true"} |
| </td> |
| </tr> |
| </> |
| ); |
| }); |
| return tablerow; |
| }; |
| const createValidity = reportdata.filter( |
| (obj) => obj.attributeName == "Validity Schedules" && obj.action == "create" |
| ); |
| const createValidityNew = createValidity.map( |
| (obj) => !isEmpty(obj.newValue) && JSON.parse(obj.newValue) |
| ); |
| const createCondition = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Conditions" && obj.action == "create"; |
| }); |
| const createConditionNew = createCondition.map((obj) => obj.newValue); |
| const createRowMask = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Row level filter Policy Items" && |
| obj.action == "create" |
| ); |
| const createRowMaskNew = createRowMask.map((newval) => newval.newValue); |
| |
| const createException = reportdata.filter( |
| (obj) => obj.attributeName == "Allow Exceptions" && obj.action == "create" |
| ); |
| const createExceptionNew = createException.map((newval) => newval.newValue); |
| const createDenyPolicy = reportdata.filter( |
| (obj) => obj.attributeName == "DenyPolicy Items" && obj.action == "create" |
| ); |
| const createDenyPolicyNew = createDenyPolicy.map((newval) => newval.newValue); |
| |
| const cerateDenyException = reportdata.filter( |
| (obj) => obj.attributeName == "Deny Exceptions" && obj.action == "create" |
| ); |
| const createDenyExceptionNew = cerateDenyException.map( |
| (newval) => newval.newValue |
| ); |
| const createMaskPolicy = reportdata.filter( |
| (obj) => obj.attributeName == "Masked Policy Items" |
| ); |
| const createMaskPolicyNew = createMaskPolicy.map((newval) => newval.newValue); |
| |
| const getDataMaskType = (dataMaskLabel, dataMaskInfo) => { |
| let maskType = dataMaskInfo?.dataMaskType; |
| |
| if (!isEmpty(dataMaskLabel)) { |
| if (dataMaskLabel == "Custom") { |
| maskType = dataMaskLabel + " : " + dataMaskInfo?.valueExpr; |
| } else { |
| maskType = dataMaskLabel; |
| } |
| } else { |
| if (dataMaskInfo.dataMaskType == "CUSTOM") { |
| maskType = dataMaskInfo.dataMaskType + " : " + dataMaskInfo?.valueExpr; |
| } else { |
| maskType = dataMaskInfo.dataMaskType; |
| } |
| } |
| |
| return maskType; |
| }; |
| |
| /* CREATE END */ |
| |
| /* UPDATE LOGS VARIABLES */ |
| |
| const updateValidity = reportdata.filter( |
| (obj) => obj.attributeName == "Validity Schedules" && obj.action == "update" |
| ); |
| const updateValidityOld = updateValidity.map((obj) => obj.previousValue); |
| const updateValidityNew = updateValidity.map((obj) => obj.newValue); |
| |
| const updateMaskPolicy = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Masked Policy Items" && obj.action == "update" |
| ); |
| const updateRowMask = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Row level filter Policy Items" && |
| obj.action == "update" |
| ); |
| const updateRowMaskOld = updateRowMask.map( |
| (obj) => obj.previousValue && obj.action == "update" |
| ); |
| const updateRowMaskNew = updateRowMask.map( |
| (obj) => obj.newValue && obj.action == "update" |
| ); |
| const updatePolicyItems = reportdata.filter( |
| (obj) => obj.attributeName == "Policy Items" && obj.action == "update" |
| ); |
| const updateException = reportdata.filter( |
| (obj) => obj.attributeName == "Allow Exceptions" && obj.action == "update" |
| ); |
| const updateDenyPolicy = reportdata.filter( |
| (obj) => obj.attributeName == "DenyPolicy Items" && obj.action == "update" |
| ); |
| const updateDenyException = reportdata.filter( |
| (obj) => obj.attributeName == "Deny Exceptions" && obj.action == "update" |
| ); |
| const updatePolicyCondition = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Conditions" && obj.action == "update"; |
| }); |
| |
| const updatePolicyConditionOld = updatePolicyCondition.map( |
| (obj) => obj.previousValue |
| ); |
| const updatePolicyConditionNew = updatePolicyCondition.map( |
| (obj) => obj.newValue |
| ); |
| |
| const updatePolicyDetails = reportdata.filter((policy) => { |
| return ( |
| policy.action == "update" && |
| policy.attributeName != "Policy Resources" && |
| policy.attributeName != "Policy Conditions" && |
| policy.attributeName != "Policy Items" && |
| policy.attributeName != "DenyPolicy Items" && |
| policy.attributeName != "Allow Exceptions" && |
| policy.attributeName != "Deny Exceptions" && |
| policy.attributeName != "Masked Policy Items" && |
| policy.attributeName != "Row level filter Policy Items" && |
| policy.attributeName != "Validity Schedules" |
| ); |
| }); |
| const updatePolicyResources = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Resources" && obj.action == "update"; |
| }); |
| |
| /* UPDATES */ |
| |
| const policyDetailsUpdate = (details, resources) => { |
| let tablerow = []; |
| const policyOldVal = (val, oldVal) => { |
| if (val == "Policy Labels") { |
| return (oldVal = !isEmpty(JSON.parse(oldVal)) |
| ? JSON.parse(oldVal).join(", ") |
| : "--"); |
| } |
| if (val == "Policy Status") { |
| return (oldVal = oldVal === "false" ? "disabled" : "enabled"); |
| } |
| |
| return !isEmpty(oldVal) ? oldVal : "--"; |
| }; |
| const policyNewVal = (val, newVal) => { |
| if (val == "Policy Labels") { |
| return (newVal = !isEmpty(JSON.parse(newVal)) |
| ? JSON.parse(newVal).join(", ") |
| : "--"); |
| } |
| if (val == "Policy Status") { |
| return (newVal = newVal === "false" ? "disabled" : "enabled"); |
| } |
| return !isEmpty(newVal) ? newVal : "--"; |
| }; |
| |
| details.map((o, index) => { |
| return tablerow.push( |
| <tr key={index}> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {o.attributeName} |
| </td> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {!isEmpty(o.previousValue) |
| ? policyOldVal(o.attributeName, o.previousValue) |
| : "--"} |
| </td> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {!isEmpty(o.newValue) |
| ? policyNewVal(o.attributeName, o.newValue) |
| : "--"} |
| </td> |
| </tr> |
| ); |
| }); |
| |
| let oldVal = {}; |
| let newVal = {}; |
| resources.map((obj) => { |
| oldVal = !isEmpty(obj.previousValue) && JSON.parse(obj.previousValue); |
| newVal = !isEmpty(obj.newValue) && JSON.parse(obj.newValue); |
| }); |
| |
| const diffVal = (obj1, obj2) => { |
| let diff = {}; |
| if (!isEmpty(obj1)) { |
| forEach(obj2, function (value, key) { |
| if (obj1[key] !== undefined) { |
| diff[key] = differenceWith(value.values, obj1[key].values, isEqual); |
| } |
| }); |
| } else { |
| return (diff = obj2); |
| } |
| return diff; |
| }; |
| let removedUsers = diffVal(newVal, oldVal); |
| let addUsers = diffVal(oldVal, newVal); |
| |
| const getfilteredoldval = (val, oldvals) => { |
| let filterdiff = null; |
| !isEmpty(removedUsers[val]) |
| ? (filterdiff = difference(oldvals?.values, removedUsers[val])) |
| : (filterdiff = oldvals?.values); |
| return ( |
| <> |
| {!isEqual(oldvals, newVal[val]) |
| ? !isEmpty(removedUsers[val]) |
| ? unionBy( |
| filterdiff.map((obj) => { |
| return ( |
| <> |
| <span>{obj}</span> |
| {`, `} |
| </> |
| ); |
| }), |
| removedUsers[val]?.map((obj) => { |
| return ( |
| <> |
| <h6 className="d-inline"> |
| <Badge |
| className="d-inline-flex mr-1" |
| variant="danger" |
| > |
| {obj} |
| </Badge> |
| </h6> |
| </> |
| ); |
| }) |
| ) |
| : !isEmpty(filterdiff) |
| ? filterdiff.map((obj) => obj).join(", ") |
| : "--" |
| : !isEmpty(oldvals) |
| ? oldvals.values.map((obj) => obj).join(", ") |
| : "--"} |
| </> |
| ); |
| }; |
| const getfilterednewval = (val, newvals) => { |
| let filterdiff = null; |
| !isEmpty(addUsers[val]) |
| ? (filterdiff = difference(newvals?.values, addUsers[val])) |
| : (filterdiff = newvals?.values); |
| return ( |
| <> |
| {!isEqual(newvals, oldVal[val]) |
| ? !isEmpty(addUsers[val]) |
| ? unionBy( |
| filterdiff.map((obj) => { |
| return ( |
| <> |
| <span>{obj}</span> |
| {`, `} |
| </> |
| ); |
| }), |
| addUsers[val].map((obj) => { |
| return ( |
| <> |
| <h6 className="d-inline"> |
| <Badge |
| className="d-inline-flex mr-1" |
| variant="success" |
| > |
| {obj} |
| </Badge> |
| </h6> |
| </> |
| ); |
| }) |
| ) |
| : !isEmpty(filterdiff) |
| ? filterdiff.map((obj) => obj).join(", ") |
| : "--" |
| : !isEmpty(newvals) |
| ? newvals.values.map((obj) => obj).join(", ") |
| : "--"} |
| </> |
| ); |
| }; |
| if ( |
| JSON.stringify(Object.keys(oldVal)) == JSON.stringify(Object.keys(newVal)) |
| ) { |
| Object.keys(oldVal)?.map((key, index) => { |
| return tablerow.push( |
| <> |
| {!isEqual(oldVal[key]?.values, newVal[key]?.values) && ( |
| <tr> |
| <td className="table-warning policyitem-field">{key}</td> |
| {oldVal[key] && !isEmpty(oldVal[key].values) && ( |
| <td className="table-warning policyitem-field"> |
| {getfilteredoldval(key, oldVal[key])} |
| </td> |
| )} |
| {newVal[key] && !isEmpty(newVal[key].values) && ( |
| <td className="table-warning"> |
| {getfilterednewval(key, newVal[key])} |
| </td> |
| )} |
| </tr> |
| )} |
| {oldVal[key]?.isExcludes != newVal[key]?.isExcludes && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "exclude"} |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {oldVal[key]?.isExcludes === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {newVal[key]?.isExcludes === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| </tr> |
| )} |
| {oldVal[key]?.isRecursive != newVal[key]?.isRecursive && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "recursive"} |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {oldVal[key]?.isRecursive === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {newVal[key]?.isRecursive === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| </tr> |
| )} |
| </> |
| ); |
| }); |
| } |
| |
| if ( |
| JSON.stringify(Object.keys(oldVal)) !== |
| JSON.stringify(Object.keys(newVal)) |
| ) { |
| Object.keys(newVal)?.map((key, index) => { |
| return tablerow.push( |
| <> |
| {!isEqual(newVal[key]?.values, oldVal[key]?.values) && ( |
| <tr> |
| <td className="table-warning policyitem-field">{key}</td> |
| <td className="table-warning policyitem-field">--</td> |
| {newVal[key] && !isEmpty(newVal[key].values) && ( |
| <td className="table-warning policyitem-field"> |
| {newVal[key].values?.map((values) => ( |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {values} |
| </Badge> |
| ))} |
| </td> |
| )} |
| </tr> |
| )} |
| { |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "exclude"} |
| </td> |
| <td className="table-warning policyitem-field">--</td> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {newVal[key]?.isExcludes === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| </tr> |
| } |
| { |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "recursive"} |
| </td> |
| <td className="table-warning policyitem-field">--</td> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {newVal[key]?.isRecursive === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| </tr> |
| } |
| </> |
| ); |
| }); |
| |
| Object.keys(oldVal)?.map((key, index) => { |
| return tablerow.push( |
| <> |
| {!isEqual(oldVal[key]?.values, newVal[key]?.values) && ( |
| <tr> |
| <td className="table-warning policyitem-field">{key}</td> |
| {oldVal[key] && !isEmpty(oldVal[key].values) && ( |
| <td className="table-warning policyitem-field"> |
| {oldVal[key]?.values?.map((values) => ( |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {values} |
| </Badge> |
| ))} |
| </td> |
| )} |
| <td className="table-warning policyitem-field">--</td> |
| </tr> |
| )} |
| { |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "exclude"} |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {oldVal[key]?.isExcludes === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| <td className="table-warning policyitem-field">--</td> |
| </tr> |
| } |
| { |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {key + " " + "recursive"} |
| </td> |
| |
| <td className="table-warning text-nowrap policyitem-field"> |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {oldVal[key]?.isRecursive === false ? "false" : "true"} |
| </Badge> |
| </h6> |
| </td> |
| <td className="table-warning policyitem-field">--</td> |
| </tr> |
| } |
| </> |
| ); |
| }); |
| } |
| |
| return tablerow; |
| }; |
| |
| const updateConditionOldNew = (policy) => { |
| var tablerow = []; |
| let oldVal = []; |
| let newVal = []; |
| |
| oldVal = |
| !isEmpty(policy.previousValue) && |
| JSON.parse(policy.previousValue).map( |
| (obj) => `${obj.type}: ${obj.values.join(", ")}` |
| ); |
| |
| newVal = |
| !isEmpty(policy.newValue) && |
| JSON.parse(policy.newValue).map( |
| (obj) => `${obj.type}: ${obj.values.join(", ")}` |
| ); |
| tablerow.push( |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| <tbody> |
| {!isEmpty(oldVal) ? ( |
| oldVal.map((val) => { |
| return ( |
| <tr key={val.id}> |
| {policy && |
| policy.previousValue && |
| !isEmpty(JSON.parse(policy.previousValue)) ? ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| {val} |
| </td> |
| ) : ( |
| <td> |
| <strong>--</strong> |
| </td> |
| )} |
| </tr> |
| ); |
| }) |
| ) : ( |
| <td className="table-warning text-center policycondition-empty"> |
| <strong>{"<empty>"} </strong> |
| </td> |
| )} |
| </tbody> |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| {!isEmpty(newVal) ? ( |
| newVal.map((val) => { |
| return policy && |
| policy.newValue && |
| !isEmpty(JSON.parse(policy.newValue)) ? ( |
| <tr key={val.id}> |
| <td className="table-warning policyitem-field">{val}</td> |
| </tr> |
| ) : ( |
| <tr> |
| <td>--</td> |
| </tr> |
| ); |
| }) |
| ) : ( |
| <td className="table-warning text-center policycondition-empty"> |
| <strong>{"<empty>"} </strong> |
| </td> |
| )} |
| </tbody> |
| </Table> |
| </Col> |
| </Row> |
| ); |
| return tablerow; |
| }; |
| const updatePolicyValidityNew = (policy) => { |
| var tableRow = []; |
| let newPolicyItems = []; |
| let oldPolicyItems = []; |
| let newPolicyItemsDiff = []; |
| let oldPolicyItemsDiff = []; |
| if (!isUndefined(policy.newValue) && !isEmpty(policy.newValue)) { |
| newPolicyItems = policy.newValue && JSON.parse(policy.newValue); |
| } |
| if (!isUndefined(policy.previousValue) && !isEmpty(policy.previousValue)) { |
| oldPolicyItems = policy.previousValue && JSON.parse(policy.previousValue); |
| } |
| newPolicyItemsDiff = differenceWith( |
| newPolicyItems, |
| oldPolicyItems, |
| isEqual |
| ); |
| oldPolicyItemsDiff = differenceWith( |
| oldPolicyItems, |
| newPolicyItems, |
| isEqual |
| ); |
| const diffVal = (obj1, obj2) => |
| Object.fromEntries( |
| Object.entries(obj1).reduce((r, [key, value]) => { |
| if (value && typeof value === "object") { |
| let temp = diffVal(value, obj2[key] || {}); |
| if (Object.keys(temp).length) r.push([key, temp]); |
| } else { |
| if (value !== obj2[key]) r.push([key, value]); |
| } |
| return r; |
| }, []) |
| ); |
| const getStartTime = (startTime, index) => { |
| var added = diffVal(newPolicyItemsDiff, oldPolicyItemsDiff); |
| |
| return !isEmpty(added[index] && added[index].startTime) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {added[index] && added[index].startTime} |
| </Badge> |
| </h6> |
| ) : ( |
| startTime |
| ); |
| }; |
| const getEndTime = (endTime, index) => { |
| var added = diffVal(newPolicyItemsDiff, oldPolicyItemsDiff); |
| |
| return !isEmpty(added[index] && added[index].endTime) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {added[index] && added[index].endTime} |
| </Badge> |
| </h6> |
| ) : ( |
| endTime |
| ); |
| }; |
| const getTimeZone = (timeZone, index) => { |
| var added = diffVal(newPolicyItemsDiff, oldPolicyItemsDiff); |
| |
| return !isEmpty(added[index] && added[index].timeZone) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {added[index] && added[index].timeZone} |
| </Badge> |
| </h6> |
| ) : ( |
| timeZone |
| ); |
| }; |
| tableRow.push( |
| !isEmpty(newPolicyItemsDiff) ? ( |
| newPolicyItemsDiff.map(({ startTime, endTime, timeZone }, index) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>Start Date: </i> |
| {!isEmpty(startTime) ? getStartTime(startTime, index) : "--"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>End Date: </i> |
| {!isEmpty(endTime) ? getEndTime(endTime, index) : "--"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>Time Zone: </i> |
| {!isEmpty(timeZone) ? getTimeZone(timeZone, index) : "--"} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ) : ( |
| <tbody> |
| <tr> |
| <td className="validity-empty-field text-center table-warning"> |
| <b>{"<empty>"}</b> |
| </td> |
| </tr> |
| </tbody> |
| ) |
| ); |
| |
| return tableRow; |
| }; |
| |
| const updatePolicyValidityOld = (policy) => { |
| var tableRow = []; |
| let newPolicyItems = []; |
| let oldPolicyItems = []; |
| let newPolicyItemsDiff = []; |
| let oldPolicyItemsDiff = []; |
| if (!isUndefined(policy.newValue) && !isEmpty(policy.newValue)) { |
| newPolicyItems = policy.newValue && JSON.parse(policy.newValue); |
| } |
| if (!isUndefined(policy.previousValue) && !isEmpty(policy.previousValue)) { |
| oldPolicyItems = policy.previousValue && JSON.parse(policy.previousValue); |
| } |
| newPolicyItemsDiff = differenceWith( |
| newPolicyItems, |
| oldPolicyItems, |
| isEqual |
| ); |
| oldPolicyItemsDiff = differenceWith( |
| oldPolicyItems, |
| newPolicyItems, |
| isEqual |
| ); |
| const diffVal = (obj1, obj2) => |
| Object.fromEntries( |
| Object.entries(obj1).reduce((r, [key, value]) => { |
| if (value && typeof value === "object") { |
| let temp = diffVal(value, obj2[key] || {}); |
| if (Object.keys(temp).length) r.push([key, temp]); |
| } else { |
| if (value !== obj2[key]) r.push([key, value]); |
| } |
| return r; |
| }, []) |
| ); |
| const getStartTime = (startTime, index) => { |
| var removed = diffVal(oldPolicyItemsDiff, newPolicyItemsDiff); |
| return !isEmpty(removed[index] && removed[index].startTime) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {removed[index] && removed[index].startTime} |
| </Badge> |
| </h6> |
| ) : ( |
| startTime |
| ); |
| }; |
| const getEndTime = (endTime, index) => { |
| var removed = diffVal(oldPolicyItemsDiff, newPolicyItemsDiff); |
| |
| return !isEmpty(removed[index] && removed[index].endTime) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {removed[index] && removed[index].endTime} |
| </Badge> |
| </h6> |
| ) : ( |
| endTime |
| ); |
| }; |
| const getTimeZone = (timeZone, index) => { |
| var removed = diffVal(oldPolicyItemsDiff, newPolicyItemsDiff); |
| |
| return !isEmpty(removed[index] && removed[index].timeZone) ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {removed[index] && removed[index].timeZone} |
| </Badge> |
| </h6> |
| ) : ( |
| timeZone |
| ); |
| }; |
| tableRow.push( |
| !isEmpty(oldPolicyItemsDiff) ? ( |
| oldPolicyItemsDiff.map(({ startTime, endTime, timeZone }, index) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>Start Date: </i> |
| {!isEmpty(startTime) ? getStartTime(startTime, index) : "--"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>End Date: </i> |
| {!isEmpty(endTime) ? getEndTime(endTime, index) : "--"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap validity-field"> |
| <i>Time Zone: </i> |
| {!isEmpty(timeZone) ? getTimeZone(timeZone, index) : "--"} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ) : ( |
| <tbody> |
| <tr> |
| <td className="validity-empty-field text-center table-warning"> |
| <b>{"<empty>"}</b> |
| </td> |
| </tr> |
| </tbody> |
| ) |
| ); |
| |
| return tableRow; |
| }; |
| |
| const updatePolicyNew = (policy) => { |
| var tableRow = []; |
| let newPolicyItems = []; |
| let oldPolicyItems = []; |
| let newPolicyItemsDiff = []; |
| let oldPolicyItemsDiff = []; |
| if (!isUndefined(policy.newValue) && !isEmpty(policy.newValue)) { |
| newPolicyItems = policy.newValue && JSON.parse(policy.newValue); |
| newPolicyItems.map((obj) => { |
| if (!isUndefined(obj.accesses)) { |
| let permissions = map( |
| filter(obj.accesses, { isAllowed: true }), |
| function (t) { |
| return t.type; |
| } |
| ); |
| obj["permissions"] = permissions; |
| } |
| obj["delegateAdmin"] = |
| obj.delegateAdmin == true ? "enabled" : "disabled"; |
| }); |
| } |
| |
| if (!isUndefined(policy.previousValue) && !isEmpty(policy.previousValue)) { |
| oldPolicyItems = policy.previousValue && JSON.parse(policy.previousValue); |
| oldPolicyItems.map((obj) => { |
| if (!isUndefined(obj.accesses)) { |
| let permissions = map( |
| filter(obj.accesses, { isAllowed: true }), |
| function (t) { |
| return t.type; |
| } |
| ); |
| obj["permissions"] = permissions; |
| obj["delegateAdmin"] = obj.delegateAdmin ? "enabled" : "disabled"; |
| } |
| }); |
| } |
| newPolicyItemsDiff = differenceWith( |
| newPolicyItems, |
| oldPolicyItems, |
| isEqual |
| ); |
| oldPolicyItemsDiff = differenceWith( |
| oldPolicyItems, |
| newPolicyItems, |
| isEqual |
| ); |
| |
| const getRoles = (roles, index) => { |
| let filterdiff = []; |
| var added = difference( |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].roles, |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].roles |
| ); |
| !isEmpty(added) |
| ? (filterdiff = differenceWith(Object.values(roles), added, isEqual)) |
| : (filterdiff = newPolicyItemsDiff); |
| return !isEmpty(added) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| added.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index].roles.map((obj) => obj).join(", "); |
| }; |
| |
| const getGroups = (group, index) => { |
| let filterdiff = []; |
| var added = difference( |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].groups, |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].groups |
| ); |
| !isEmpty(added) |
| ? (filterdiff = differenceWith(Object.values(group), added, isEqual)) |
| : (filterdiff = newPolicyItemsDiff); |
| return !isEmpty(added) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| added.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index].groups.map((obj) => obj).join(", "); |
| }; |
| const getUsers = (users, index) => { |
| let filterdiff = []; |
| var added = difference( |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].users, |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].users |
| ); |
| !isEmpty(added) |
| ? (filterdiff = differenceWith(Object.values(users), added, isEqual)) |
| : (filterdiff = newPolicyItemsDiff); |
| return !isEmpty(added) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| added.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index].users.map((obj) => obj).join(", "); |
| }; |
| const getPermissions = (permissions, index) => { |
| let filterdiff = []; |
| var added = difference( |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].permissions, |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].permissions |
| ); |
| !isEmpty(added) |
| ? (filterdiff = differenceWith( |
| Object.values(permissions), |
| added, |
| isEqual |
| )) |
| : (filterdiff = newPolicyItemsDiff); |
| return !isEmpty(added) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| added.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index]?.permissions !== undefined |
| ? filterdiff[index]?.permissions?.map((obj) => obj).join(", ") |
| : "<empty>"; |
| }; |
| |
| const getMaskingLabel = (DataMasklabel, dataMaskInfo, index) => { |
| if (DataMasklabel) { |
| if ( |
| !isEqual( |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index].DataMasklabel, |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].DataMasklabel |
| ) |
| ) { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {getDataMaskType(DataMasklabel, dataMaskInfo)} |
| </Badge> |
| </h6> |
| ); |
| } else { |
| return getDataMaskType(DataMasklabel, dataMaskInfo); |
| } |
| } |
| if (dataMaskInfo) { |
| if ( |
| !isEqual( |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index].dataMaskInfo.dataMaskType, |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index].dataMaskInfo.dataMaskType |
| ) |
| ) { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {dataMaskInfo.dataMaskType} |
| </Badge> |
| </h6> |
| ); |
| } else { |
| return getDataMaskType(DataMasklabel, dataMaskInfo); |
| } |
| } |
| }; |
| const getRowLevelFilter = (rowFilter, index) => { |
| var added = isEqual( |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index].rowFilterInfo.filterExpr, |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index].rowFilterInfo.filterExpr |
| ); |
| return !added ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {rowFilter} |
| </Badge> |
| </h6> |
| ) : ( |
| rowFilter |
| ); |
| }; |
| const getCondition = (conditions, index) => { |
| var added = isEqual( |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index]?.conditions?.map((obj) => obj.values), |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index]?.conditions?.map((obj) => { |
| obj.values; |
| }) |
| ); |
| return !added ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="success"> |
| {`${conditions.type}: ${conditions.values.join(", ")}`} |
| </Badge> |
| </h6> |
| ) : ( |
| `${conditions.type}: ${conditions.values.join(", ")}` |
| ); |
| }; |
| tableRow.push( |
| !isEmpty(newPolicyItemsDiff) ? ( |
| newPolicyItemsDiff.map( |
| ( |
| { |
| roles, |
| groups, |
| users, |
| permissions, |
| delegateAdmin, |
| dataMaskInfo, |
| DataMasklabel, |
| conditions, |
| rowFilterInfo |
| }, |
| index |
| ) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Roles: </i> |
| {!isEmpty(roles) ? getRoles(roles, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Groups: </i> |
| {!isEmpty(groups) ? getGroups(groups, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Users: </i> |
| {!isEmpty(users) ? getUsers(users, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {policy.attributeName == "Masked Policy Items" || |
| policy.attributeName == "Row level filter Policy Items" ? ( |
| <i>Accesses: </i> |
| ) : ( |
| <i>Permissions: </i> |
| )} |
| {getPermissions(permissions, index)} |
| </td> |
| </tr> |
| {(policy.attributeName != "Masked Policy Items" || |
| policy.attributeName != "Row level filter Policy Items") && |
| !isEmpty(conditions) && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Conditions: </i> |
| {!isEmpty(conditions) |
| ? conditions.map((obj) => { |
| return getCondition(obj, index); |
| }) |
| : "<empty>"} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName != "Masked Policy Items" && |
| policy.attributeName != "Row level filter Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Delegate Admin: </i> |
| {delegateAdmin} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName == "Masked Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Data Mask Type: </i> |
| {getMaskingLabel(DataMasklabel, dataMaskInfo, index)} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName == "Row level filter Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap"> |
| <i>Row Level Filter: </i> |
| {!isEmpty(rowFilterInfo) |
| ? getRowLevelFilter(rowFilterInfo.filterExpr, index) |
| : "--"} |
| </td> |
| </tr> |
| )} |
| {newPolicyItemsDiff.length - 1 != index && ( |
| <tr> |
| <td> |
| <br /> |
| </td> |
| </tr> |
| )} |
| </tbody> |
| ) |
| ) |
| ) : ( |
| <tbody> |
| <tr> |
| <td className="policyitem-empty-field text-center table-warning"> |
| <b>{"<empty>"}</b> |
| </td> |
| </tr> |
| </tbody> |
| ) |
| ); |
| |
| return tableRow; |
| }; |
| const updatePolicyOld = (policy) => { |
| var tableRow = []; |
| let oldPolicyItems = []; |
| let newPolicyItems = []; |
| let newPolicyItemsDiff = []; |
| let oldPolicyItemsDiff = []; |
| |
| if (!isUndefined(policy.previousValue) && !isEmpty(policy.previousValue)) { |
| oldPolicyItems = policy.previousValue && JSON.parse(policy.previousValue); |
| oldPolicyItems.map((obj) => { |
| if (!isUndefined(obj.accesses)) { |
| let permissions = map( |
| filter(obj.accesses, { isAllowed: true }), |
| function (t) { |
| return t.type; |
| } |
| ); |
| obj["permissions"] = permissions; |
| } |
| obj["delegateAdmin"] = |
| obj.delegateAdmin == true ? "enabled" : "disabled"; |
| }); |
| } |
| if (!isUndefined(policy.newValue) && !isEmpty(policy.newValue)) { |
| newPolicyItems = policy.newValue && JSON.parse(policy.newValue); |
| newPolicyItems.map((obj) => { |
| if (!isUndefined(obj.accesses)) { |
| let permissions = map( |
| filter(obj.accesses, { isAllowed: true }), |
| (t) => { |
| return t.type; |
| } |
| ); |
| obj["permissions"] = permissions; |
| obj["delegateAdmin"] = |
| obj.delegateAdmin == true ? "enabled" : "disabled"; |
| } |
| }); |
| } |
| newPolicyItemsDiff = differenceWith( |
| newPolicyItems, |
| oldPolicyItems, |
| isEqual |
| ); |
| oldPolicyItemsDiff = differenceWith( |
| oldPolicyItems, |
| newPolicyItems, |
| isEqual |
| ); |
| |
| const getRoles = (roles, index) => { |
| let filterdiff = []; |
| var removed = difference( |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].roles, |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].roles |
| ); |
| !isEmpty(removed) |
| ? (filterdiff = differenceWith(Object.values(roles), removed, isEqual)) |
| : (filterdiff = oldPolicyItemsDiff); |
| return !isEmpty(removed) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| removed.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index]?.roles?.map((obj) => obj).join(", "); |
| }; |
| const getGroups = (group, index) => { |
| let filterdiff = []; |
| var removed = difference( |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].groups, |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].groups |
| ); |
| !isEmpty(removed) |
| ? (filterdiff = differenceWith(Object.values(group), removed, isEqual)) |
| : (filterdiff = oldPolicyItemsDiff); |
| return !isEmpty(removed) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| removed.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index]?.groups?.map((obj) => obj).join(", "); |
| }; |
| const getUsers = (users, index) => { |
| let filterdiff = []; |
| var removed = difference( |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].users, |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].users |
| ); |
| !isEmpty(removed) |
| ? (filterdiff = differenceWith(Object.values(users), removed, isEqual)) |
| : (filterdiff = oldPolicyItemsDiff); |
| return !isEmpty(removed) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| removed.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index]?.users?.map((obj) => obj).join(", "); |
| }; |
| const getPermissions = (permissions, index) => { |
| let filterdiff = []; |
| var removed = difference( |
| oldPolicyItemsDiff[index] && oldPolicyItemsDiff[index].permissions, |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].permissions |
| ); |
| !isEmpty(removed) |
| ? (filterdiff = differenceWith( |
| Object.values(permissions), |
| removed, |
| isEqual |
| )) |
| : (filterdiff = oldPolicyItemsDiff); |
| return !isEmpty(removed) |
| ? unionBy( |
| filterdiff.map((val) => `${val}, `), |
| removed.map((obj) => { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {obj} |
| </Badge> |
| </h6> |
| ); |
| }) |
| ) |
| : filterdiff[index]?.permissions !== undefined |
| ? filterdiff[index]?.permissions?.map((obj) => obj).join(", ") |
| : "<empty>"; |
| }; |
| |
| const getMaskingLabel = (DataMasklabel, dataMaskInfo, index) => { |
| if (DataMasklabel) { |
| if ( |
| !isEqual( |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index].DataMasklabel, |
| newPolicyItemsDiff[index] && newPolicyItemsDiff[index].DataMasklabel |
| ) |
| ) { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {getDataMaskType(DataMasklabel, dataMaskInfo)} |
| </Badge> |
| </h6> |
| ); |
| } else { |
| return getDataMaskType(DataMasklabel, dataMaskInfo); |
| } |
| } |
| if (dataMaskInfo) { |
| if ( |
| !isEqual( |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index].dataMaskInfo.dataMaskType, |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index].dataMaskInfo.dataMaskType |
| ) |
| ) { |
| return ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {getDataMaskType(DataMasklabel, dataMaskInfo)} |
| </Badge> |
| </h6> |
| ); |
| } else { |
| return getDataMaskType(DataMasklabel, dataMaskInfo); |
| } |
| } |
| }; |
| const getRowLevelFilter = (rowFilter, index) => { |
| var removed = isEqual( |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index].rowFilterInfo.filterExpr, |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index].rowFilterInfo.filterExpr |
| ); |
| return !removed ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {rowFilter} |
| </Badge> |
| </h6> |
| ) : ( |
| rowFilter |
| ); |
| }; |
| const getCondition = (conditions, index) => { |
| var removed = isEqual( |
| newPolicyItemsDiff[index] && |
| newPolicyItemsDiff[index]?.conditions?.map((obj) => { |
| obj.values; |
| }), |
| oldPolicyItemsDiff[index] && |
| oldPolicyItemsDiff[index]?.conditions?.map((obj) => obj.values) |
| ); |
| return !removed ? ( |
| <h6 className="d-inline"> |
| <Badge className="d-inline-flex mr-1" variant="danger"> |
| {`${conditions.type}: ${conditions.values.join(", ")}`} |
| </Badge> |
| </h6> |
| ) : ( |
| `${conditions.type}: ${conditions.values.join(", ")}` |
| ); |
| }; |
| tableRow.push( |
| !isEmpty(oldPolicyItemsDiff) ? ( |
| oldPolicyItemsDiff.map( |
| ( |
| { |
| roles, |
| groups, |
| users, |
| permissions, |
| delegateAdmin, |
| DataMasklabel, |
| dataMaskInfo, |
| conditions, |
| rowFilterInfo |
| }, |
| index |
| ) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Roles: </i> |
| {!isEmpty(roles) ? getRoles(roles, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Groups: </i> |
| {!isEmpty(groups) ? getGroups(groups, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Users: </i> |
| {!isEmpty(users) ? getUsers(users, index) : "<empty>"}{" "} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| {policy.attributeName == "Masked Policy Items" || |
| policy.attributeName == "Row level filter Policy Items" ? ( |
| <i>Accesses: </i> |
| ) : ( |
| <i>Permissions: </i> |
| )} |
| |
| {getPermissions(permissions, index)} |
| </td> |
| </tr> |
| {(policy.attributeName != "Masked Policy Items" || |
| policy.attributeName != "Row level filter Policy Items") && |
| !isEmpty(conditions) && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Conditions: </i> |
| {!isEmpty(conditions) |
| ? conditions.map((obj) => { |
| return getCondition(obj, index); |
| }) |
| : "<empty>"} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName != "Masked Policy Items" && |
| policy.attributeName != "Row level filter Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Delegate Admin: </i> |
| {delegateAdmin} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName == "Masked Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Data Mask Type: </i> |
| {getMaskingLabel(DataMasklabel, dataMaskInfo, index)} |
| </td> |
| </tr> |
| )} |
| {policy.attributeName == "Row level filter Policy Items" && ( |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>Row Level Filter: </i> |
| {!isEmpty(rowFilterInfo) |
| ? getRowLevelFilter(rowFilterInfo.filterExpr, index) |
| : "--"} |
| </td> |
| </tr> |
| )} |
| {oldPolicyItemsDiff.length - 1 != index && ( |
| <tr> |
| <td> |
| <br /> |
| </td> |
| </tr> |
| )} |
| </tbody> |
| ) |
| ) |
| ) : ( |
| <tbody> |
| <tr> |
| <td className="policyitem-empty-field text-center table-warning"> |
| <b>{"<empty>"}</b> |
| </td> |
| </tr> |
| </tbody> |
| ) |
| ); |
| |
| return tableRow; |
| }; |
| |
| /*UPDATE END */ |
| |
| /* DELETE POLICY VARIABLES */ |
| |
| const deletePolicyDetails = reportdata.filter((policy) => { |
| return ( |
| policy.action == "delete" && |
| policy.attributeName != "Policy Resources" && |
| policy.attributeName != "Policy Conditions" && |
| policy.attributeName != "Policy Items" && |
| policy.attributeName != "DenyPolicy Items" && |
| policy.attributeName != "Allow Exceptions" && |
| policy.attributeName != "Deny Exceptions" && |
| policy.attributeName != "Zone Name" && |
| policy.attributeName != "Masked Policy Items" && |
| policy.attributeName != "Row level filter Policy Items" && |
| policy.attributeName != "Validity Schedules" |
| ); |
| }); |
| const deletePolicyResources = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Resources" && obj.action == "delete"; |
| }); |
| const deleteDetails = (details, resources) => { |
| let tablerow = []; |
| |
| const policyOldVal = (val, oldVal) => { |
| if (val == "Policy Labels") { |
| return (oldVal = !isEmpty(JSON.parse(oldVal)) |
| ? JSON.parse(oldVal).join(", ") |
| : "--"); |
| } |
| if (val == "Policy Status") { |
| return (oldVal = oldVal === "false" ? "disabled" : "enabled"); |
| } |
| return !isEmpty(oldVal) ? oldVal : "--"; |
| }; |
| |
| details.map((policy) => { |
| return tablerow.push( |
| <tr> |
| <td className="table-warning text-nowrap">{policy.attributeName}</td> |
| <td className="table-warning text-nowrap"> |
| {!isEmpty(policy.previousValue) |
| ? policyOldVal(policy.attributeName, policy.previousValue) |
| : "--"} |
| </td> |
| </tr> |
| ); |
| }); |
| |
| let keynew = {}; |
| resources.map((obj) => { |
| keynew = !isEmpty(obj.previousValue) && JSON.parse(obj.previousValue); |
| }); |
| |
| Object.keys(keynew).map((key, index) => { |
| return tablerow.push( |
| <> |
| <tr key={index}> |
| <td className="table-warning">{key}</td> |
| <td className="table-warning"> |
| {!isEmpty(keynew[key].values) |
| ? keynew[key].values.join(", ") |
| : "--"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning">{key + " " + "exclude"}</td> |
| <td className="table-warning"> |
| {keynew[key].isExcludes == false ? "false" : "true"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning">{key + " " + "recursive"}</td> |
| <td className="table-warning"> |
| {keynew[key].isRecursive == false ? "false" : "true"} |
| </td> |
| </tr> |
| </> |
| ); |
| }); |
| return tablerow; |
| }; |
| |
| const deleteRowMask = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Row level filter Policy Items" && |
| obj.action == "delete" |
| ); |
| |
| const deleteRowMaskOld = deleteRowMask.map((obj) => obj.previousValue); |
| const deleteValidity = reportdata.filter( |
| (obj) => obj.attributeName == "Validity Schedules" && obj.action == "delete" |
| ); |
| |
| const deleteValidityOld = deleteValidity.map((obj) => obj.previousValue); |
| |
| const deleteCondition = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Conditions" && obj.action == "delete"; |
| }); |
| |
| const deleteConditionOld = deleteCondition.map((obj) => obj.previousValue); |
| const deleteMaskPolicy = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Masked Policy Items" && obj.action == "delete" |
| ); |
| const deletemaskPolicyOld = deleteMaskPolicy.map((obj) => obj.previousValue); |
| const deletePolicyItems = reportdata.filter( |
| (obj) => obj.attributeName == "Policy Items" && obj.action == "delete" |
| ); |
| |
| const deletePolicyItemsOld = deletePolicyItems.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const deleteException = reportdata.filter( |
| (obj) => obj.attributeName == "Allow Exceptions" && obj.action == "delete" |
| ); |
| const deleteExceptionOld = deleteException.map((obj) => obj.previousValue); |
| |
| const deleteDenyPolicy = reportdata.filter( |
| (obj) => obj.attributeName == "DenyPolicy Items" && obj.action == "delete" |
| ); |
| const deleteDenyPolicyOld = deleteDenyPolicy.map((obj) => obj.previousValue); |
| |
| const deleteDenyException = reportdata.filter( |
| (obj) => obj.attributeName == "Deny Exceptions" && obj.action == "delete" |
| ); |
| const deleteDenyExceptionOld = deleteDenyException.map( |
| (obj) => obj.previousValue |
| ); |
| |
| /*DELETE END */ |
| |
| /* IMPORT DELETE LOGS VARIABLES */ |
| |
| const importDeleteDetails = reportdata.filter((c) => { |
| return ( |
| c.action == "Import Delete" && |
| c.attributeName != "Policy Resources" && |
| c.attributeName != "Policy Conditions" && |
| c.attributeName != "Policy Items" && |
| c.attributeName != "DenyPolicy Items" && |
| c.attributeName != "Zone Name" && |
| c.attributeName != "Allow Exceptions" && |
| c.attributeName != "Deny Exceptions" && |
| c.attributeName != "Masked Policy Items" && |
| c.attributeName != "Row level filter Policy Items" && |
| c.attributeName != "Validity Schedules" |
| ); |
| }); |
| |
| const ImportDeleteDetails = (details, resources) => { |
| let tablerow = []; |
| const createDetailsPolicy = (val, newVal) => { |
| if (val == "Policy Labels") { |
| return (newVal = !isEmpty(JSON.parse(newVal)) |
| ? JSON.parse(newVal).join(", ") |
| : "--"); |
| } |
| if (val == "Policy Status") { |
| return (newVal = newVal === "false" ? "disabled" : "enabled"); |
| } |
| return !isEmpty(newVal) ? newVal : "--"; |
| }; |
| details.map((policy) => { |
| return tablerow.push( |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {policy.attributeName} |
| </td> |
| <td className="table-warning policyitem-field"> |
| {!isEmpty(policy.previousValue) |
| ? createDetailsPolicy(policy.attributeName, policy.previousValue) |
| : "--"} |
| </td> |
| </tr> |
| ); |
| }); |
| |
| let keynew = {}; |
| resources.map((obj) => { |
| keynew = !isEmpty(obj.previousValue) && JSON.parse(obj.previousValue); |
| }); |
| |
| Object.keys(keynew).map((key, index) => { |
| return tablerow.push( |
| <> |
| <tr> |
| <td className="table-warning policyitem-field">{key}</td> |
| <td className="table-warning policyitem-field"> |
| {" "} |
| {keynew[key].values} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {key + " " + "exclude"} |
| </td> |
| <td className="table-warning policyitem-field"> |
| {keynew[key].isExcludes == false ? "false" : "true"} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {key + " " + "recursive"} |
| </td> |
| <td className="table-warning policyitem-field"> |
| {keynew[key].isRecursive == false ? "false" : "true"} |
| </td> |
| </tr> |
| </> |
| ); |
| }); |
| return tablerow; |
| }; |
| |
| const importDelItems = reportdata.filter((obj) => { |
| return obj.attributeName == "Policy Items"; |
| }); |
| const importDeleteItemsOld = importDelItems.map((obj) => obj.previousValue); |
| |
| const importDelValidity = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Validity Schedules" && obj.action == "Import Delete" |
| ); |
| const importDelValidityOld = importDelValidity.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const importDelPolicyCondition = reportdata.filter((obj) => { |
| return ( |
| obj.attributeName == "Policy Conditions" && obj.action == "Import Delete" |
| ); |
| }); |
| const importPolicyConditionOld = importDelPolicyCondition.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const importDelPolicyException = reportdata.filter( |
| (obj) => obj.attributeName == "Allow Exceptions" |
| ); |
| const importdelPolicyExceptionOld = importDelPolicyException.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const importdeldenyPolicy = reportdata.filter( |
| (obj) => |
| obj.attributeName == "DenyPolicy Items" && obj.action == "Import Delete" |
| ); |
| const importdeldenyPolicyold = importdeldenyPolicy.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const importDelDenyExceptions = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Deny Exceptions" && obj.action == "Import Delete" |
| ); |
| const importDeldenyExceptionsold = importDelDenyExceptions.map( |
| (obj) => obj.previousValue |
| ); |
| |
| const importdelmaskPolicyItem = reportdata.filter( |
| (obj) => |
| obj.attributeName == "Masked Policy Items" && |
| obj.action == "Import Delete" |
| ); |
| const importdelmaskpolicyold = importdelmaskPolicyItem.map( |
| (obj) => obj.previousValue |
| ); |
| |
| /*IMPORT DELETE END*/ |
| |
| /* IMPORT END LOGS*/ |
| |
| const importEnd = reportdata.filter((obj) => obj.action == "IMPORT END"); |
| |
| /* EXPORT JSON | CSV | EXCEL LOGS */ |
| |
| const exportVal = reportdata.filter( |
| (obj) => |
| obj.action == "EXPORT JSON" || |
| obj.action == "EXPORT EXCEL" || |
| obj.action == "EXPORT CSV" |
| ); |
| const exportOldVal = (val, oldVal) => { |
| if (val == "Export time") { |
| return (oldVal = dateFormat(createDate, "mm/dd/yyyy hh:MM:ss TT ")); |
| } |
| return oldVal; |
| }; |
| |
| const importdeleteresources = reportdata.filter((c) => { |
| return c.attributeName == "Policy Resources" && c.action == "Import Delete"; |
| }); |
| |
| return ( |
| <div> |
| {/* CREATE LOGS */} |
| |
| {action == "create" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <div className="font-weight-bolder"> |
| Policy ID :{" "} |
| <Badge className="d-inline-flex mr-1" variant="info"> |
| {objectId} |
| </Badge> |
| </div> |
| <div className="font-weight-bolder">Policy Name: {objectName}</div> |
| <div className="font-weight-bolder"> |
| Service Name: {parentObjectName} |
| </div> |
| <div className="font-weight-bolder"> |
| Created Date: {dateFormat(createDate, "mm/dd/yyyy hh:MM:ss TT ")} |
| India Standard Time |
| </div> |
| <div className="font-weight-bolder">Created By: {owner}</div> |
| <h5 className="bold wrap-header mt-3">Policy Details:</h5> |
| |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Fields</th> |
| |
| <th>New Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| {policyDetails(createPolicyDetails, createPolicyResources)} |
| </tbody> |
| </Table> |
| <br /> |
| {action == "create" && |
| !isEmpty(createValidityNew) && |
| !isUndefined(createValidityNew) && |
| createValidityNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Validity Period:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| {createValidityNew.map((policyitem) => { |
| return policyitem.map((policy, index) => ( |
| <tbody> |
| <tr key={index}> |
| <td className="table-warning policyitem-field"> |
| {`Start Date: ${ |
| !isEmpty(policy.startTime) |
| ? policy.startTime |
| : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {`End Date: ${ |
| !isEmpty(policy.endTime) ? policy.endTime : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {`Time Zone: ${ |
| !isEmpty(policy.timeZone) |
| ? policy.timeZone |
| : "--" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createConditionNew) && |
| !isUndefined(createConditionNew) && |
| createConditionNew != 0 && |
| createConditionNew != "[]" && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Policy Conditions: |
| </h5> |
| <Table className="table table-striped table-bordered w-25"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createConditionNew.map((policyitem) => { |
| return !isEmpty(JSON.parse(policyitem)) ? ( |
| JSON.parse(policyitem).map((policy, index) => ( |
| <tbody> |
| <tr key={index}> |
| <td className="table-warning policyitem-field"> |
| {" "} |
| {`${policy.type}: ${policy.values}`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ) : ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <strong>{"<empty>"}</strong> |
| </td> |
| </tr> |
| </tbody> |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createPolicyItems) && |
| !isUndefined(createPolicyItems) && |
| createPolicyItems != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createPolicyItems.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem.newValue) && |
| JSON.parse(policyitem.newValue).map((policy, index) => ( |
| <tbody> |
| <tr key={index}> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => `${type.type} : ${type.values}` |
| )}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createRowMaskNew) && |
| !isUndefined(createRowMaskNew) && |
| createRowMaskNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Row Level Filter Policy Items: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createRowMaskNew.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Accesses`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Row Level Filter`}</i> |
| {!isEmpty(policy.rowFilterInfo.filterExpr) |
| ? `: ${policy.rowFilterInfo.filterExpr} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createExceptionNew) && |
| !isUndefined(createExceptionNew) && |
| createExceptionNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Allow Exceptions:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createExceptionNew.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions |
| .map( |
| (type) => |
| `${type.type} : ${type.values}` |
| ) |
| .join(", ")}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createDenyPolicyNew) && |
| !isUndefined(createDenyPolicyNew) && |
| createDenyPolicyNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Deny PolicyItems:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createDenyPolicyNew.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions |
| .map( |
| (type) => |
| `${type.type} : ${type.values}` |
| ) |
| .join(", ")}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createDenyExceptionNew) && |
| !isUndefined(createDenyExceptionNew) && |
| createDenyExceptionNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Deny Exception PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createDenyExceptionNew.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => `${type.type} : ${type.values}` |
| )}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "create" && |
| !isEmpty(createMaskPolicyNew) && |
| !isUndefined(createMaskPolicyNew) && |
| createMaskPolicyNew != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Masking Policy Items: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto "> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {createMaskPolicyNew.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy, index) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Accesses`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| |
| <tr> |
| {policy.delegateAdmin == true && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| {!isEmpty(policy.dataMaskInfo) && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Data Mask Types: `}</i> |
| {getDataMaskType( |
| policy.DataMasklabel, |
| policy.dataMaskInfo |
| )} |
| </td> |
| )} |
| </tr> |
| {JSON.parse(policyitem).length - 1 != index && ( |
| <tr> |
| <br /> |
| </tr> |
| )} |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| </> |
| )} |
| </div> |
| )} |
| |
| {/* UPDATE Policy Logs*/} |
| |
| {action == "update" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <div className="row"> |
| <div className="col-md-6"> |
| <div className="font-weight-bolder"> |
| Policy ID :{" "} |
| <Badge className="d-inline-flex mr-1" variant="info"> |
| {objectId} |
| </Badge> |
| </div> |
| <div className="font-weight-bolder"> |
| Policy Name: {objectName} |
| </div> |
| <div className="font-weight-bolder"> |
| Service Name: {parentObjectName} |
| </div> |
| <div className="font-weight-bolder"> |
| Updated Date:{" "} |
| {dateFormat(createDate, "mm/dd/yyyy hh:MM:ss TT ")} India |
| Standard Time |
| </div> |
| <div className="font-weight-bolder">Updated By: {owner} </div> |
| </div> |
| <div className="col-md-6 text-right"> |
| <div className="bg-success legend"></div> {" Added "} |
| <div className="bg-danger legend"></div> {" Deleted "} |
| </div> |
| </div> |
| <br /> |
| |
| {(!isEmpty(updatePolicyDetails) || |
| !isEmpty(updatePolicyResources)) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Policy details</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Fields</th> |
| <th>Old Value</th> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| {policyDetailsUpdate( |
| updatePolicyDetails, |
| updatePolicyResources |
| )} |
| </tbody> |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "update" && |
| !isEqual(updatePolicyConditionOld, updatePolicyConditionNew) && |
| (!updatePolicyConditionOld.includes("") || |
| !updatePolicyConditionNew.includes("")) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Policy Conditions: |
| </h5> |
| {updatePolicyCondition.map((policyitem) => { |
| return updateConditionOldNew(policyitem); |
| })} |
| </> |
| )} |
| {action == "update" && |
| !isEqual(updateValidityOld, updateValidityNew) && |
| (!updateValidityOld.includes("") || |
| !updateValidityNew.includes("")) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Validity Period:</h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateValidity.map((policy) => { |
| return updatePolicyValidityOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {updateValidity.map((policy) => { |
| return updatePolicyValidityNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| (!isEmpty(updateRowMaskOld) || !isEmpty(updateRowMaskNew)) && |
| (!updateRowMaskOld.includes("") || |
| !updateRowMaskNew.includes("")) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Row Level Filter Policy Items: |
| </h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateRowMask.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>New Value</th> |
| </tr> |
| </thead> |
| |
| {updateRowMask.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| !isEmpty(updateMaskPolicy) && |
| !isUndefined(updateMaskPolicy) && |
| updateMaskPolicy != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Masking Policy Items: |
| </h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateMaskPolicy.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">New Value</th> |
| </tr> |
| </thead> |
| |
| {updateMaskPolicy.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| !isEmpty(updatePolicyItems) && |
| !isUndefined(updatePolicyItems) && |
| updatePolicyItems != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow PolicyItems: |
| </h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">Old Value</th> |
| </tr> |
| </thead> |
| |
| {updatePolicyItems.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">New Value</th> |
| </tr> |
| </thead> |
| |
| {updatePolicyItems.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| !isEmpty(updateException) && |
| !isUndefined(updateException) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow Exception PolicyItems: |
| </h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateException.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">New Value</th> |
| </tr> |
| </thead> |
| |
| {updateException.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| !isEmpty(updateDenyPolicy) && |
| !isUndefined(updateDenyPolicy) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Deny PolicyItems:</h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateDenyPolicy.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">New Value</th> |
| </tr> |
| </thead> |
| |
| {updateDenyPolicy.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| <br /> |
| </> |
| )} |
| |
| {action == "update" && |
| !isEmpty(updateDenyException) && |
| !isUndefined(updateDenyException) && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Deny Exception PolicyItems: |
| </h5> |
| |
| <Row className="d-flex flex-nowrap"> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">Old Value</th> |
| </tr> |
| </thead> |
| |
| {updateDenyException.map((policy) => { |
| return updatePolicyOld(policy); |
| })} |
| </Table> |
| </Col> |
| <Col className="d-table" xs={6} md={4}> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th className="text-nowrap">New Value</th> |
| </tr> |
| </thead> |
| |
| {updateDenyException.map((policy) => { |
| return updatePolicyNew(policy); |
| })} |
| </Table> |
| </Col> |
| </Row> |
| </> |
| )} |
| </div> |
| )} |
| |
| {/* DELETE POLICY LOGS */} |
| |
| {action == "delete" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <div className="font-weight-bolder"> |
| Policy ID :{" "} |
| <Badge className="d-inline-flex mr-1" variant="info"> |
| {objectId} |
| </Badge> |
| </div> |
| <div className="font-weight-bolder">Policy Name: {objectName}</div> |
| <div className="font-weight-bolder"> |
| Service Name: {parentObjectName} |
| </div> |
| <div className="font-weight-bolder"> |
| Deleted Date: {dateFormat(createDate, "mm/dd/yyyy hh:MM:ss TT ")}{" "} |
| India Standard Time |
| </div> |
| <div className="font-weight-bolder">Deleted By: {owner} </div> |
| <br /> |
| <h5 className="bold wrap-header m-t-sm">Policy Details:</h5> |
| |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Fields</th> |
| |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| {deleteDetails(deletePolicyDetails, deletePolicyResources)} |
| </tbody> |
| </Table> |
| <br /> |
| {action == "delete" && |
| !isEmpty(deleteValidityOld) && |
| !isUndefined(deleteValidityOld) && |
| deleteValidityOld != "[]" && |
| deleteValidityOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Validity Period:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>old Value</th> |
| </tr> |
| </thead> |
| {deleteValidityOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Start Date`}</i> |
| {`: ${ |
| !isEmpty(policy.startTime) |
| ? policy.startTime |
| : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`End Date`}</i> |
| {`: ${ |
| !isEmpty(policy.endTime) |
| ? policy.endTime |
| : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Time Zone`}</i> |
| {`: ${ |
| !isEmpty(policy.timeZone) |
| ? policy.timeZone |
| : "--" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deleteConditionOld) && |
| !isUndefined(deleteConditionOld) && |
| deleteConditionOld != "[]" && |
| deleteConditionOld != "" && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Policy Conditions: |
| </h5> |
| <Table className="table table-striped table-bordered w-25"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deleteConditionOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| {`${policy.type}: ${policy.values.join(", ")}`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deleteRowMaskOld) && |
| !isUndefined(deleteRowMaskOld) && |
| deleteRowMaskOld != 0 && |
| deleteRowMaskOld.length > 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Row Level Filter Policy Items: |
| </h5> |
| <Table className="table table-striped table-bordered table-responsive w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deleteRowMaskOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Accesses`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Row Level Filter`}</i> |
| {!isEmpty(policy.rowFilterInfo.filterExpr) |
| ? `: ${policy.rowFilterInfo.filterExpr}` |
| : "<empty>"} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| <br /> |
| </Table> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deletemaskPolicyOld) && |
| !isUndefined(deletemaskPolicyOld) && |
| deletemaskPolicyOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Masking Policy Items: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deletemaskPolicyOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy, index) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Accesses`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| |
| <tr> |
| {policy.delegateAdmin == true && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| {!isEmpty(policy.dataMaskInfo) && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Data Mask Types: `}</i> |
| {getDataMaskType( |
| policy.DataMasklabel, |
| policy.dataMaskInfo |
| )} |
| </td> |
| )} |
| </tr> |
| {JSON.parse(policyitem).length - 1 != index && ( |
| <tr> |
| <br /> |
| </tr> |
| )} |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deletePolicyItemsOld) && |
| !isUndefined(deletePolicyItemsOld) && |
| deletePolicyItemsOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deletePolicyItemsOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => |
| `${type.type} : ${type.values.join( |
| ", " |
| )}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deleteExceptionOld) && |
| !isUndefined(deleteExceptionOld) && |
| deleteExceptionOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow Exception PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deleteExceptionOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => |
| `${type.type} : ${type.values.join( |
| ", " |
| )}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "delete" && |
| !isEmpty(deleteDenyPolicyOld) && |
| !isUndefined(deleteDenyPolicyOld) && |
| deleteDenyPolicyOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Deny PolicyItems:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deleteDenyPolicyOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => |
| `${type.type} : ${type.values.join( |
| ", " |
| )}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "delete" && |
| !isEmpty(deleteDenyExceptionOld) && |
| !isUndefined(deleteDenyExceptionOld) && |
| deleteDenyExceptionOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Deny Exception PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {deleteDenyExceptionOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => |
| `${type.type} : ${type.values.join( |
| ", " |
| )}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| </div> |
| )} |
| |
| {/* IMPORT END */} |
| {action == "IMPORT END" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <h5 className="bold wrap-header m-t-sm">Details:</h5> |
| <Table className="table table-striped table-bordered w-50"> |
| {importEnd.map( |
| (c) => |
| !isEmpty(c.previousValue) && |
| Object.keys(JSON.parse(c.previousValue)).map((s, index) => ( |
| <tbody key={index}> |
| <tr> |
| <td className="table-warning policyitem-field">{s}</td> |
| <td className="table-warning policyitem-field"> |
| {JSON.parse(c.previousValue)[s]} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| )} |
| </Table> |
| </div> |
| )} |
| |
| {/* IMPORT START */} |
| {action == "IMPORT START" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <p className="text-center"> |
| Importing policies from file is started... |
| </p> |
| </div> |
| )} |
| {/* Export JSON */} |
| {(action == "EXPORT JSON" || |
| action == "EXPORT CSV" || |
| action == "EXPORT EXCEL") && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Details:</h5> |
| <Table className="table table-striped table-bordered w-50"> |
| {exportVal.map( |
| (c) => |
| !isEmpty(c.previousValue) && |
| Object.keys(JSON.parse(c.previousValue)).map((s, index) => ( |
| <tbody key={index}> |
| <tr> |
| <td className="table-warning">{s}</td> |
| <td className="table-warning"> |
| {c && |
| c.previousValue && |
| !isEmpty(JSON.parse(c.previousValue)) |
| ? exportOldVal(s, JSON.parse(c.previousValue)[s]) |
| : "--"} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| )} |
| </Table> |
| </> |
| )} |
| |
| {/* Import Delete */} |
| |
| {action == "Import Delete" && |
| objectClassType == ClassTypes.CLASS_TYPE_RANGER_POLICY.value && ( |
| <div> |
| <div className="font-weight-bolder"> |
| Policy ID :{" "} |
| <Badge className="d-inline-flex mr-1" variant="info"> |
| {objectId} |
| </Badge> |
| </div> |
| <div className="font-weight-bolder">Policy Name: {objectName}</div> |
| <div className="font-weight-bolder"> |
| Deleted Date: {dateFormat(createDate, "mm/dd/yyyy hh:MM:ss TT ")}{" "} |
| India Standard Time |
| </div> |
| <div className="font-weight-bolder">Deleted By: {owner} </div> |
| <br /> |
| <h5 className="bold wrap-header m-t-sm">Policy Details:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Fields</th> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| <tbody> |
| {ImportDeleteDetails( |
| importDeleteDetails, |
| importdeleteresources |
| )} |
| </tbody> |
| </Table> |
| <br /> |
| |
| {action == "Import Delete" && |
| !isEmpty(importDelValidityOld) && |
| !isUndefined(importDelValidityOld) && |
| importDelValidityOld != "[]" && |
| importDelValidityOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Validity Period:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>old Value</th> |
| </tr> |
| </thead> |
| {importDelValidityOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Start Date`}</i> |
| {`: ${ |
| !isEmpty(policy.startTime) |
| ? policy.startTime |
| : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`End Date`}</i> |
| {`: ${ |
| !isEmpty(policy.endTime) |
| ? policy.endTime |
| : "--" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Time Zone`}</i> |
| {`: ${ |
| !isEmpty(policy.timeZone) |
| ? policy.timeZone |
| : "--" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "Import Delete" && |
| !isEmpty(importdelmaskpolicyold) && |
| !isUndefined(importdelmaskpolicyold) && |
| importdelmaskpolicyold != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Masking Policy Items: |
| </h5> |
| |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {importdelmaskpolicyold.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy, index) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Accesses`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| |
| <tr> |
| {policy.delegateAdmin == true && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| {!isEmpty(policy.dataMaskInfo) && ( |
| <td className="table-warning text-nowrap policyitem-field"> |
| <i>{`Data Mask Types: `}</i> |
| {getDataMaskType( |
| policy.DataMasklabel, |
| policy.dataMaskInfo |
| )} |
| </td> |
| )} |
| </tr> |
| {JSON.parse(policyitem).length - 1 != index && ( |
| <tr> |
| <br /> |
| </tr> |
| )} |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "Import Delete" && |
| !isEmpty(importPolicyConditionOld) && |
| !isUndefined(importPolicyConditionOld) && |
| importPolicyConditionOld != 0 && |
| importPolicyConditionOld != "[]" && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Policy Conditions: |
| </h5> |
| <Table className="table table-striped table-bordered w-25"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {importPolicyConditionOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field">{`${policy.type}: ${policy.values}`}</td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| {action == "Import Delete" && |
| !isEmpty(importDeleteItemsOld) && |
| !isUndefined(importDeleteItemsOld) && |
| importDeleteItemsOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| {importDeleteItemsOld.map( |
| (policyitem) => |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => { |
| return ( |
| <> |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && |
| policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => |
| `${type.type} : ${type.values}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == false |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| </> |
| ); |
| }) |
| )} |
| </Table> |
| <br /> |
| </> |
| )} |
| </div> |
| )} |
| |
| {action == "Import Delete" && |
| !isEmpty(importdelPolicyExceptionOld) && |
| !isUndefined(importdelPolicyExceptionOld) && |
| importdelPolicyExceptionOld != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Allow Exception PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {importdelPolicyExceptionOld.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => `${type.type} : ${type.values}` |
| )} `} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| } `} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "Import Delete" && |
| !isEmpty(importdeldenyPolicyold) && |
| !isUndefined(importdeldenyPolicyold) && |
| importdeldenyPolicyold != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm">Deny PolicyItems:</h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {importdeldenyPolicyold.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {!isEmpty(policy.accesses) |
| ? `: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")} ` |
| : "<empty>"} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions`}</i> |
| {`: ${policy.conditions.map( |
| (type) => `${type.type} : ${type.values}` |
| )}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| <br /> |
| </> |
| )} |
| |
| {action == "Import Delete" && |
| !isEmpty(importDeldenyExceptionsold) && |
| !isUndefined(importDeldenyExceptionsold) && |
| importDeldenyExceptionsold != 0 && ( |
| <> |
| <h5 className="bold wrap-header m-t-sm"> |
| Deny Exception PolicyItems: |
| </h5> |
| <Table className="table table-striped table-bordered w-auto"> |
| <thead className="thead-light"> |
| <tr> |
| <th>Old Value</th> |
| </tr> |
| </thead> |
| |
| {importDeldenyExceptionsold.map((policyitem) => { |
| return ( |
| !isEmpty(policyitem) && |
| JSON.parse(policyitem).map((policy) => ( |
| <tbody> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Roles`}</i> |
| {`: ${ |
| !isEmpty(policy.roles) |
| ? policy.roles.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Groups`}</i> |
| {`: ${ |
| !isEmpty(policy.groups) |
| ? policy.groups.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Users`}</i> |
| {`: ${ |
| !isEmpty(policy.users) |
| ? policy.users.join(", ") |
| : "<empty>" |
| } `} |
| </td> |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Permissions`}</i> |
| {`: ${policy.accesses |
| .map((obj) => obj.type) |
| .join(", ")}`} |
| </td> |
| </tr> |
| <tr> |
| {policy.conditions && policy.conditions.length > 0 && ( |
| <td className="table-warning policyitem-field"> |
| <i>{`Conditions:`}</i> |
| {`: ${policy.conditions.map( |
| (type) => `${type.type} : ${type.values}` |
| )}`} |
| </td> |
| )} |
| </tr> |
| <tr> |
| <td className="table-warning policyitem-field"> |
| <i>{`Delegate Admin`}</i> |
| {`: ${ |
| policy.delegateAdmin == true |
| ? "enabled" |
| : "disabled" |
| }`} |
| </td> |
| </tr> |
| <br /> |
| </tbody> |
| )) |
| ); |
| })} |
| </Table> |
| </> |
| )} |
| </div> |
| ); |
| }; |
| |
| export default PolicyLogs; |