diff --git a/frontend/src/components/DetectionFramework.jsx b/frontend/src/components/DetectionFramework.jsx index 56d81d6c..a995a493 100644 --- a/frontend/src/components/DetectionFramework.jsx +++ b/frontend/src/components/DetectionFramework.jsx @@ -616,8 +616,6 @@ const Framework = (props) => { } const setFrameworkItem = (data) => { - console.log("UPLOAD: ", data) - fetch(globalUrl + "/api/v1/apps/frameworkConfiguration", { method: "POST", headers: { @@ -675,8 +673,6 @@ const Framework = (props) => { "description": newSelectedApp.description, } - console.log("APP: ", newSelectedApp) - const foundelement = cy.getElementById(discoveryData.id) if (foundelement !== undefined && foundelement !== null) { foundelement.data("large_image", newSelectedApp.image_url) @@ -699,47 +695,102 @@ const Framework = (props) => { const imgSize = 50; var parsedFrameworkData = frameworkData + // Awful mapping to make sure all access is always there if (frameworkData !== undefined) { if (frameworkData.cases !== undefined) { - frameworkData.Cases = frameworkData.cases - } - if (frameworkData.siem !== undefined) { - frameworkData.SIEM = frameworkData.siem - } - if (frameworkData.assets !== undefined) { - frameworkData.Assets = frameworkData.assets - } - if (frameworkData.intel !== undefined) { - frameworkData.Intel = frameworkData.intel - } - if (frameworkData.communication !== undefined) { - frameworkData.Comms = frameworkData.communication - } - if (frameworkData.network !== undefined) { - frameworkData.Network = frameworkData.network - } - if (frameworkData.iam !== undefined) { - frameworkData.IAM = frameworkData.iam - } - if (frameworkData.edr !== undefined) { - frameworkData["EDR & AV"] = frameworkData.edr + if (frameworkData.cases.large_image === undefined && frameworkData.cases.large_image === null || frameworkData.cases.large_image === "") { + frameworkData.cases = {} + } + + parsedFrameworkData.Cases = frameworkData.cases + } else { + parsedFrameworkData.Cases = {} } - parsedFrameworkData = frameworkData - } else { - console.log("No frameworkdata: ") - parsedFrameworkData = { - "Cases": {}, - "SIEM": {}, - "Assets": {}, - "IAM": {}, - "Intel": {}, - "Comms": {}, - "Network": {}, - "EDR & AV": {}, + if (frameworkData.siem !== undefined) { + if (frameworkData.siem.large_image === undefined && frameworkData.siem.large_image === null || frameworkData.siem.large_image === "") { + frameworkData.siem = {} + } + + parsedFrameworkData.SIEM = frameworkData.siem + } else { + parsedFrameworkData.SIEM = {} } + + if (frameworkData.assets !== undefined) { + if (frameworkData.assets.large_image === undefined && frameworkData.assets.large_image === null || frameworkData.assets.large_image === "") { + frameworkData.assets = {} + } + + parsedFrameworkData.Assets = frameworkData.assets + } else { + parsedFrameworkData.Assets = {} + } + + if (frameworkData.intel !== undefined) { + if (frameworkData.intel.large_image === undefined && frameworkData.intel.large_image === null || frameworkData.intel.large_image === "") { + frameworkData.intel = {} + } + + parsedFrameworkData.Intel = frameworkData.intel + } else { + parsedFrameworkData.Intel= {} + } + + if (frameworkData.communication !== undefined) { + if (frameworkData.communication.large_image === undefined && frameworkData.communication.large_image === null || frameworkData.communication.large_image === "") { + frameworkData.communication = {} + } + + parsedFrameworkData.Comms = frameworkData.communication + } else { + parsedFrameworkData.Comms = {} + } + + if (frameworkData.network !== undefined) { + if (frameworkData.network.large_image === undefined && frameworkData.network.large_image === null || frameworkData.network.large_image === "") { + frameworkData.network = {} + } + + parsedFrameworkData.Network = frameworkData.network + } else { + parsedFrameworkData.Network = {} + } + + if (frameworkData.iam !== undefined) { + if (frameworkData.iam.large_image === undefined && frameworkData.iam.large_image === null || frameworkData.iam.large_image === "") { + frameworkData.iam = {} + } + + parsedFrameworkData.IAM = frameworkData.iam + } else { + parsedFrameworkData.IAM = {} + } + + if (frameworkData.edr !== undefined) { + if (frameworkData.edr.large_image === undefined && frameworkData.edr.large_image === null || frameworkData.edr.large_image === "") { + frameworkData.edr = {} + } + + parsedFrameworkData["EDR & AV"] = frameworkData.edr + } else { + parsedFrameworkData["EDR & AV"] = {} + } + + } else { + console.log("No frameworkdata for org! Setting default") + parsedFrameworkData["Cases"] = {} + parsedFrameworkData["SIEM"] = {} + parsedFrameworkData["Assets"] = {} + parsedFrameworkData["IAM"] = {} + parsedFrameworkData["Intel"] = {} + parsedFrameworkData["Comms"] = {} + parsedFrameworkData["Network"] = {} + parsedFrameworkData["EDR & AV"] = {} } + console.log("Framework - update? ", parsedFrameworkData) + // 0 = automated, 1 = manual const [usecaseType, setUsecaseType] = React.useState(0) const [selectedUsecase, setSelectedUsecase] = React.useState(selectedOption !== undefined ? selectedOption : "Phishing") @@ -1168,10 +1219,10 @@ const Framework = (props) => { description: parsedFrameworkData.Network.description === undefined ? "" : parsedFrameworkData.Network.description, app_id: parsedFrameworkData.Network.id === undefined ? "" : parsedFrameworkData.Network.id, text_margin_y: parsedFrameworkData.Network.large_image === undefined ? textMarginDefault : textMarginImage, - margin_x: parsedFrameworkData.Network.large_image === undefined ? `${32*scale}px` : "0px", - margin_y: parsedFrameworkData.Network.large_image === undefined ? `${19*scale}px` : `0px`, - width: parsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize, - height: parsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize, + margin_x: parsedFrameworkData.Network.large_image === undefined ? `${32*scale}px` : "0px", + margin_y: parsedFrameworkData.Network.large_image === undefined ? `${19*scale}px` : `0px`, + width: parsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize, + height: parsedFrameworkData.Network.large_image === undefined ? iconSize : defaultSize, large_image: parsedFrameworkData.Network.large_image === undefined ? encodeURI(`data:image/svg+xml;utf-8, , `) : parsedFrameworkData.Network.large_image, diff --git a/frontend/src/components/Workflowsearch.jsx b/frontend/src/components/Workflowsearch.jsx index 53e8abdd..73539521 100644 --- a/frontend/src/components/Workflowsearch.jsx +++ b/frontend/src/components/Workflowsearch.jsx @@ -13,8 +13,9 @@ import { Grid, Paper, TextField, ButtonBase, InputAdornment, Typography, Button, const searchClient = algoliasearch("JNSS5CFDZZ", "db08e40265e2941b9a7d8f644b6e5240") const WorkflowSearch = props => { - const { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, newSelectedApp, setNewSelectedApp, defaultSearch, showSearch, ConfiguredHits } = props + const { maxRows, showName, showSuggestion, isMobile, globalUrl, parsedXs, newSelectedApp, setNewSelectedApp, defaultSearch, showSearch, ConfiguredHits, selectAble, } = props const rowHandler = maxRows === undefined || maxRows === null ? 50 : maxRows + const xs = parsedXs === undefined || parsedXs === null ? 12 : parsedXs const theme = useTheme(); //const [apps, setApps] = React.useState([]); @@ -111,6 +112,10 @@ const WorkflowSearch = props => { //value={currentRefinement} } + if (selectAble === true) { + console.log("Make it possible to select a Workflow!!") + } + const Hits = ({ hits }) => { const [mouseHoverIndex, setMouseHoverIndex] = useState(-1) var counted = 0