forked from p15670423/monkey
Merge pull request #166 from guardicore/hotfix/fix-dep-security-vul
Hotfix/fix dep security vul
This commit is contained in:
commit
b56dec318e
|
@ -1,7 +1,4 @@
|
||||||
{
|
{
|
||||||
"presets": [
|
"presets": ["es2015", "stage-0", "react"]
|
||||||
"es2015",
|
|
||||||
"stage-0",
|
|
||||||
"react"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
'use strict';
|
|
||||||
let path = require('path');
|
|
||||||
let defaultSettings = require('./defaults');
|
|
||||||
|
|
||||||
// Additional npm or bower modules to include in builds
|
|
||||||
// Add all foreign plugins you may need into this array
|
|
||||||
// @example:
|
|
||||||
// let npmBase = path.join(__dirname, '../node_modules');
|
|
||||||
// let additionalPaths = [ path.join(npmBase, 'react-bootstrap') ];
|
|
||||||
let additionalPaths = [];
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
additionalPaths: additionalPaths,
|
|
||||||
port: defaultSettings.port,
|
|
||||||
debug: true,
|
|
||||||
devtool: 'eval',
|
|
||||||
output: {
|
|
||||||
path: path.join(__dirname, '/../dist/assets'),
|
|
||||||
filename: 'app.js',
|
|
||||||
publicPath: defaultSettings.publicPath
|
|
||||||
},
|
|
||||||
devServer: {
|
|
||||||
contentBase: './src/',
|
|
||||||
historyApiFallback: true,
|
|
||||||
hot: true,
|
|
||||||
port: defaultSettings.port,
|
|
||||||
publicPath: defaultSettings.publicPath,
|
|
||||||
noInfo: false
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
extensions: ['', '.js', '.jsx'],
|
|
||||||
alias: {
|
|
||||||
actions: `${defaultSettings.srcPath}/actions/`,
|
|
||||||
components: `${defaultSettings.srcPath}/components/`,
|
|
||||||
sources: `${defaultSettings.srcPath}/sources/`,
|
|
||||||
stores: `${defaultSettings.srcPath}/stores/`,
|
|
||||||
styles: `${defaultSettings.srcPath}/styles/`,
|
|
||||||
config: `${defaultSettings.srcPath}/config/` + process.env.REACT_WEBPACK_ENV,
|
|
||||||
'react/lib/ReactMount': 'react-dom/lib/ReactMount'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
module: {}
|
|
||||||
};
|
|
|
@ -1,68 +0,0 @@
|
||||||
/**
|
|
||||||
* Function that returns default values.
|
|
||||||
* Used because Object.assign does a shallow instead of a deep copy.
|
|
||||||
* Using [].push will add to the base array, so a require will alter
|
|
||||||
* the base array output.
|
|
||||||
*/
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const path = require('path');
|
|
||||||
const srcPath = path.join(__dirname, '/../src');
|
|
||||||
const dfltPort = 8000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the default modules object for webpack
|
|
||||||
* @return {Object}
|
|
||||||
*/
|
|
||||||
function getDefaultModules() {
|
|
||||||
return {
|
|
||||||
preLoaders: [
|
|
||||||
{
|
|
||||||
test: /\.(js|jsx)$/,
|
|
||||||
include: srcPath,
|
|
||||||
loader: 'eslint-loader'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
loaders: [
|
|
||||||
{
|
|
||||||
test: /\.css$/,
|
|
||||||
loader: 'style-loader!css-loader'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.sass/,
|
|
||||||
loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded&indentedSyntax'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.scss/,
|
|
||||||
loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.less/,
|
|
||||||
loader: 'style-loader!css-loader!less-loader'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.styl/,
|
|
||||||
loader: 'style-loader!css-loader!stylus-loader'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(png|jpg|gif)$/,
|
|
||||||
loader: 'url-loader?limit=8192'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
||||||
loader: 'url-loader?limit=10000&mimetype=application/font-woff'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
||||||
loader: 'file-loader'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
srcPath: srcPath,
|
|
||||||
publicPath: '/assets/',
|
|
||||||
port: dfltPort,
|
|
||||||
getDefaultModules: getDefaultModules
|
|
||||||
};
|
|
|
@ -1,47 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
let path = require('path');
|
|
||||||
let webpack = require('webpack');
|
|
||||||
let baseConfig = require('./base');
|
|
||||||
let defaultSettings = require('./defaults');
|
|
||||||
|
|
||||||
// Add needed plugins here
|
|
||||||
let BowerWebpackPlugin = require('bower-webpack-plugin');
|
|
||||||
|
|
||||||
let config = Object.assign({}, baseConfig, {
|
|
||||||
entry: [
|
|
||||||
'webpack-dev-server/client?http://127.0.0.1:' + defaultSettings.port,
|
|
||||||
'webpack/hot/only-dev-server',
|
|
||||||
'./src/index'
|
|
||||||
],
|
|
||||||
cache: true,
|
|
||||||
devtool: 'eval-source-map',
|
|
||||||
plugins: [
|
|
||||||
new webpack.HotModuleReplacementPlugin(),
|
|
||||||
new webpack.NoErrorsPlugin(),
|
|
||||||
new BowerWebpackPlugin({
|
|
||||||
searchResolveModulesDirectories: false
|
|
||||||
})
|
|
||||||
],
|
|
||||||
module: defaultSettings.getDefaultModules()
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add needed loaders to the defaults here
|
|
||||||
config.module.loaders.push({
|
|
||||||
test: /\.(js|jsx)$/,
|
|
||||||
loader: 'react-hot!babel-loader',
|
|
||||||
include: [].concat(
|
|
||||||
config.additionalPaths,
|
|
||||||
[ path.join(__dirname, '/../src') ]
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
// proxy to backend server
|
|
||||||
config.devServer.proxy = {
|
|
||||||
'/api': {
|
|
||||||
target: 'https://localhost:5000',
|
|
||||||
secure: false
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = config;
|
|
|
@ -1,42 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
let path = require('path');
|
|
||||||
let webpack = require('webpack');
|
|
||||||
|
|
||||||
let baseConfig = require('./base');
|
|
||||||
let defaultSettings = require('./defaults');
|
|
||||||
|
|
||||||
// Add needed plugins here
|
|
||||||
let BowerWebpackPlugin = require('bower-webpack-plugin');
|
|
||||||
|
|
||||||
let config = Object.assign({}, baseConfig, {
|
|
||||||
entry: path.join(__dirname, '../src/index'),
|
|
||||||
cache: false,
|
|
||||||
devtool: 'sourcemap',
|
|
||||||
plugins: [
|
|
||||||
new webpack.optimize.DedupePlugin(),
|
|
||||||
new webpack.DefinePlugin({
|
|
||||||
'process.env.NODE_ENV': '"production"'
|
|
||||||
}),
|
|
||||||
new BowerWebpackPlugin({
|
|
||||||
searchResolveModulesDirectories: false
|
|
||||||
}),
|
|
||||||
new webpack.optimize.UglifyJsPlugin(),
|
|
||||||
new webpack.optimize.OccurenceOrderPlugin(),
|
|
||||||
new webpack.optimize.AggressiveMergingPlugin(),
|
|
||||||
new webpack.NoErrorsPlugin()
|
|
||||||
],
|
|
||||||
module: defaultSettings.getDefaultModules()
|
|
||||||
});
|
|
||||||
|
|
||||||
// Add needed loaders to the defaults here
|
|
||||||
config.module.loaders.push({
|
|
||||||
test: /\.(js|jsx)$/,
|
|
||||||
loader: 'babel',
|
|
||||||
include: [].concat(
|
|
||||||
config.additionalPaths,
|
|
||||||
[ path.join(__dirname, '/../src') ]
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
module.exports = config;
|
|
|
@ -1,51 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
let path = require('path');
|
|
||||||
let srcPath = path.join(__dirname, '/../src/');
|
|
||||||
|
|
||||||
let baseConfig = require('./base');
|
|
||||||
|
|
||||||
// Add needed plugins here
|
|
||||||
let BowerWebpackPlugin = require('bower-webpack-plugin');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
devtool: 'eval',
|
|
||||||
module: {
|
|
||||||
preLoaders: [
|
|
||||||
],
|
|
||||||
loaders: [
|
|
||||||
{
|
|
||||||
test: /\.(png|jpg|gif|woff|woff2|css|sass|scss|less|styl)$/,
|
|
||||||
loader: 'null-loader'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
test: /\.(js|jsx)$/,
|
|
||||||
loader: 'babel-loader',
|
|
||||||
include: [].concat(
|
|
||||||
baseConfig.additionalPaths,
|
|
||||||
[
|
|
||||||
path.join(__dirname, '/../src'),
|
|
||||||
path.join(__dirname, '/../test')
|
|
||||||
]
|
|
||||||
)
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
resolve: {
|
|
||||||
extensions: [ '', '.js', '.jsx' ],
|
|
||||||
alias: {
|
|
||||||
actions: srcPath + 'actions/',
|
|
||||||
helpers: path.join(__dirname, '/../test/helpers'),
|
|
||||||
components: srcPath + 'components/',
|
|
||||||
sources: srcPath + 'sources/',
|
|
||||||
stores: srcPath + 'stores/',
|
|
||||||
styles: srcPath + 'styles/',
|
|
||||||
config: srcPath + 'config/' + process.env.REACT_WEBPACK_ENV
|
|
||||||
}
|
|
||||||
},
|
|
||||||
plugins: [
|
|
||||||
new BowerWebpackPlugin({
|
|
||||||
searchResolveModulesDirectories: false
|
|
||||||
})
|
|
||||||
]
|
|
||||||
};
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,11 +2,10 @@
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Infection Monkey C&C UI",
|
"description": "Infection Monkey C&C UI",
|
||||||
"main": "",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"clean": "rimraf dist/*",
|
"clean": "rimraf dist/*",
|
||||||
"copy": "copyfiles -f ./src/index.html ./src/favicon.ico ./dist",
|
"copy": "copyfiles -f ./src/index.html ./src/favicon.ico ./dist",
|
||||||
"dist": "npm run copy & webpack --env=dist",
|
"dist": "webpack --mode production",
|
||||||
"lint": "eslint ./src",
|
"lint": "eslint ./src",
|
||||||
"posttest": "npm run lint",
|
"posttest": "npm run lint",
|
||||||
"release:major": "npm version major && npm publish && git push --follow-tags",
|
"release:major": "npm version major && npm publish && git push --follow-tags",
|
||||||
|
@ -14,7 +13,7 @@
|
||||||
"release:patch": "npm version patch && npm publish && git push --follow-tags",
|
"release:patch": "npm version patch && npm publish && git push --follow-tags",
|
||||||
"serve": "node server.js --env=dev",
|
"serve": "node server.js --env=dev",
|
||||||
"serve:dist": "node server.js --env=dist",
|
"serve:dist": "node server.js --env=dist",
|
||||||
"start": "node server.js --env=dev",
|
"start": "webpack-dev-server --mode development --open --history-api-fallback --port 8000",
|
||||||
"test": "karma start",
|
"test": "karma start",
|
||||||
"test:watch": "karma start --autoWatch=true --singleRun=false"
|
"test:watch": "karma start --autoWatch=true --singleRun=false"
|
||||||
},
|
},
|
||||||
|
@ -22,71 +21,75 @@
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "Guardicore",
|
"author": "Guardicore",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-core": "^6.26.0",
|
"babel-cli": "^6.26.0",
|
||||||
"babel-eslint": "^6.0.0",
|
"babel-core": "^6.26.3",
|
||||||
"babel-loader": "^6.4.1",
|
"babel-eslint": "^8.2.6",
|
||||||
|
"babel-loader": "^7.1.5",
|
||||||
"babel-polyfill": "^6.26.0",
|
"babel-polyfill": "^6.26.0",
|
||||||
|
"babel-preset-env": "^1.7.0",
|
||||||
"babel-preset-es2015": "^6.24.1",
|
"babel-preset-es2015": "^6.24.1",
|
||||||
"babel-preset-react": "^6.24.1",
|
"babel-preset-react": "^6.24.1",
|
||||||
"babel-preset-stage-0": "^6.5.0",
|
"babel-preset-stage-0": "^6.5.0",
|
||||||
"bower-webpack-plugin": "^0.1.9",
|
"bower-webpack-plugin": "^0.1.9",
|
||||||
"chai": "^3.2.0",
|
"chai": "^4.1.2",
|
||||||
"copyfiles": "^1.0.0",
|
"copyfiles": "^2.0.0",
|
||||||
"css-loader": "^0.23.1",
|
"css-loader": "^1.0.0",
|
||||||
"eslint": "^3.0.0",
|
"eslint": "^5.3.0",
|
||||||
"eslint-loader": "^1.0.0",
|
"eslint-loader": "^2.1.0",
|
||||||
"eslint-plugin-react": "^6.0.0",
|
"eslint-plugin-react": "^7.11.1",
|
||||||
"file-loader": "^0.9.0",
|
"file-loader": "^1.1.11",
|
||||||
"glob": "^7.0.0",
|
"glob": "^7.0.0",
|
||||||
"karma": "^1.7.1",
|
"html-loader": "^0.5.5",
|
||||||
|
"html-webpack-plugin": "^3.2.0",
|
||||||
|
"karma": "^3.0.0",
|
||||||
"karma-chai": "^0.1.0",
|
"karma-chai": "^0.1.0",
|
||||||
"karma-coverage": "^1.0.0",
|
"karma-coverage": "^1.1.2",
|
||||||
"karma-mocha": "^1.0.0",
|
"karma-mocha": "^1.0.0",
|
||||||
"karma-mocha-reporter": "^2.2.5",
|
"karma-mocha-reporter": "^2.2.5",
|
||||||
"karma-phantomjs-launcher": "^1.0.0",
|
"karma-phantomjs-launcher": "^1.0.0",
|
||||||
"karma-sourcemap-loader": "^0.3.5",
|
"karma-sourcemap-loader": "^0.3.5",
|
||||||
"karma-webpack": "^1.7.0",
|
"karma-webpack": "^3.0.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"null-loader": "^0.1.1",
|
"null-loader": "^0.1.1",
|
||||||
"open": "0.0.5",
|
"open": "0.0.5",
|
||||||
"phantomjs-prebuilt": "^2.1.16",
|
"phantomjs-prebuilt": "^2.1.16",
|
||||||
"react-addons-test-utils": "^15.6.2",
|
"react-addons-test-utils": "^15.6.2",
|
||||||
"react-hot-loader": "^1.2.9",
|
"react-hot-loader": "^4.3.4",
|
||||||
"rimraf": "^2.6.2",
|
"rimraf": "^2.6.2",
|
||||||
"style-loader": "^0.13.2",
|
"style-loader": "^0.22.1",
|
||||||
"url-loader": "^0.5.9",
|
"url-loader": "^1.1.0",
|
||||||
"webpack": "^1.15.0",
|
"webpack": "^4.16.5",
|
||||||
"webpack-dev-server": "^1.12.0"
|
"webpack-cli": "^3.1.0",
|
||||||
|
"webpack-dev-server": "^3.1.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "^3.3.7",
|
"bootstrap": "3.3.7",
|
||||||
"core-js": "^2.5.5",
|
"core-js": "^2.5.7",
|
||||||
"downloadjs": "^1.4.7",
|
"downloadjs": "^1.4.7",
|
||||||
"fetch": "^1.1.0",
|
"fetch": "^1.1.0",
|
||||||
"js-file-download": "^0.4.1",
|
"js-file-download": "^0.4.1",
|
||||||
"json-loader": "^0.5.7",
|
"json-loader": "^0.5.7",
|
||||||
"jwt-decode": "^2.2.0",
|
"jwt-decode": "^2.2.0",
|
||||||
"moment": "^2.22.1",
|
"moment": "^2.22.2",
|
||||||
"normalize.css": "^4.0.0",
|
"normalize.css": "^8.0.0",
|
||||||
"npm": "^5.8.0",
|
"npm": "^6.3.0",
|
||||||
"prop-types": "^15.6.1",
|
"prop-types": "^15.6.2",
|
||||||
"rc-progress": "^2.2.5",
|
"rc-progress": "^2.2.5",
|
||||||
"react": "^15.6.2",
|
"react": "^16.4.2",
|
||||||
"react-bootstrap": "^0.31.5",
|
"react-bootstrap": "^0.32.1",
|
||||||
"react-copy-to-clipboard": "^5.0.1",
|
"react-copy-to-clipboard": "^5.0.1",
|
||||||
"react-data-components": "^1.2.0",
|
"react-data-components": "^1.2.0",
|
||||||
"react-dimensions": "^1.3.0",
|
"react-dimensions": "^1.3.0",
|
||||||
"react-dom": "^15.6.2",
|
"react-dom": "^16.4.2",
|
||||||
"react-fa": "^4.2.0",
|
"react-fa": "^5.0.0",
|
||||||
"react-graph-vis": "^0.1.4",
|
"react-graph-vis": "^1.0.2",
|
||||||
"react-json-tree": "^0.10.9",
|
"react-json-tree": "^0.11.0",
|
||||||
"react-jsonschema-form": "^0.50.1",
|
"react-jsonschema-form": "^1.0.4",
|
||||||
"react-modal-dialog": "^4.0.7",
|
|
||||||
"react-redux": "^5.0.7",
|
"react-redux": "^5.0.7",
|
||||||
"react-router-dom": "^4.2.2",
|
"react-router-dom": "^4.3.1",
|
||||||
"react-table": "^6.7.4",
|
"react-table": "^6.8.6",
|
||||||
"react-toggle": "^4.0.1",
|
"react-toggle": "^4.0.1",
|
||||||
"redux": "^3.7.2"
|
"redux": "^4.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,11 +14,11 @@ import LicensePage from 'components/pages/LicensePage';
|
||||||
import AuthComponent from 'components/AuthComponent';
|
import AuthComponent from 'components/AuthComponent';
|
||||||
import LoginPageComponent from 'components/pages/LoginPage';
|
import LoginPageComponent from 'components/pages/LoginPage';
|
||||||
|
|
||||||
require('normalize.css/normalize.css');
|
import 'normalize.css/normalize.css';
|
||||||
require('react-data-components/css/table-twbs.css');
|
import 'react-data-components/css/table-twbs.css';
|
||||||
require('styles/App.css');
|
import 'styles/App.css';
|
||||||
require('react-toggle/style.css');
|
import 'react-toggle/style.css';
|
||||||
require('react-table/react-table.css');
|
import 'react-table/react-table.css';
|
||||||
|
|
||||||
let logoImage = require('../images/monkey-icon.svg');
|
let logoImage = require('../images/monkey-icon.svg');
|
||||||
let infectionMonkeyImage = require('../images/infection-monkey.svg');
|
let infectionMonkeyImage = require('../images/infection-monkey.svg');
|
||||||
|
|
|
@ -13,6 +13,7 @@ let getGroupsOptions = () => {
|
||||||
image: require('../../images/nodes/' + groupName + '.png')
|
image: require('../../images/nodes/' + groupName + '.png')
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return groupOptions;
|
return groupOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -155,6 +155,14 @@ class PreviewPaneComponent extends AuthComponent {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
islandAssetInfo() {
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
No info to show
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
assetInfo(asset) {
|
assetInfo(asset) {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
|
@ -244,8 +252,8 @@ class PreviewPaneComponent extends AuthComponent {
|
||||||
info = this.scanInfo(this.props.item);
|
info = this.scanInfo(this.props.item);
|
||||||
break;
|
break;
|
||||||
case 'node':
|
case 'node':
|
||||||
info = this.props.item.group.includes('monkey', 'manual') ?
|
info = this.props.item.group.includes('monkey', 'manual') ? this.infectedAssetInfo(this.props.item) :
|
||||||
this.infectedAssetInfo(this.props.item) : this.assetInfo(this.props.item);
|
this.props.item.group !== 'island' ? this.assetInfo(this.props.item) : this.islandAssetInfo();
|
||||||
break;
|
break;
|
||||||
case 'island_edge':
|
case 'island_edge':
|
||||||
info = this.islandEdgeInfo();
|
info = this.islandEdgeInfo();
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Col} from 'react-bootstrap';
|
import {Col, Modal} from 'react-bootstrap';
|
||||||
import {Link} from 'react-router-dom';
|
import {Link} from 'react-router-dom';
|
||||||
import {Icon} from 'react-fa';
|
import {Icon} from 'react-fa';
|
||||||
import PreviewPane from 'components/map/preview-pane/PreviewPane';
|
import PreviewPane from 'components/map/preview-pane/PreviewPane';
|
||||||
import {ReactiveGraph} from 'components/reactive-graph/ReactiveGraph';
|
import {ReactiveGraph} from 'components/reactive-graph/ReactiveGraph';
|
||||||
import {ModalContainer, ModalDialog} from 'react-modal-dialog';
|
|
||||||
import {options, edgeGroupToColor} from 'components/map/MapOptions';
|
import {options, edgeGroupToColor} from 'components/map/MapOptions';
|
||||||
import AuthComponent from '../AuthComponent';
|
import AuthComponent from '../AuthComponent';
|
||||||
|
|
||||||
|
@ -98,14 +97,10 @@ class MapPageComponent extends AuthComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
renderKillDialogModal = () => {
|
renderKillDialogModal = () => {
|
||||||
if (!this.state.showKillDialog) {
|
|
||||||
return <div />
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalContainer onClose={() => this.setState({showKillDialog: false})}>
|
<Modal show={this.state.showKillDialog} onHide={() => this.setState({showKillDialog: false})}>
|
||||||
<ModalDialog onClose={() => this.setState({showKillDialog: false})}>
|
<Modal.Body>
|
||||||
<h2>Are you sure you want to kill all monkeys?</h2>
|
<h2><div className="text-center">Are you sure you want to kill all monkeys?</div></h2>
|
||||||
<p style={{'fontSize': '1.2em', 'marginBottom': '2em'}}>
|
<p style={{'fontSize': '1.2em', 'marginBottom': '2em'}}>
|
||||||
This might take a few moments...
|
This might take a few moments...
|
||||||
</p>
|
</p>
|
||||||
|
@ -122,9 +117,10 @@ class MapPageComponent extends AuthComponent {
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</ModalDialog>
|
</Modal.Body>
|
||||||
</ModalContainer>
|
</Modal>
|
||||||
)
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
renderTelemetryEntry(telemetry) {
|
renderTelemetryEntry(telemetry) {
|
||||||
|
|
|
@ -421,7 +421,7 @@ class ReportPageComponent extends AuthComponent {
|
||||||
<ScannedServers data={this.state.report.glance.scanned}/>
|
<ScannedServers data={this.state.report.glance.scanned}/>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<StolenPasswords data={this.state.report.glance.stolen_creds, this.state.report.glance.ssh_keys}/>
|
<StolenPasswords data={this.state.report.glance.stolen_creds.concat(this.state.report.glance.ssh_keys)}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import {Col} from 'react-bootstrap';
|
import {Col, Modal} from 'react-bootstrap';
|
||||||
import {Link} from 'react-router-dom';
|
import {Link} from 'react-router-dom';
|
||||||
import {ModalContainer, ModalDialog} from 'react-modal-dialog';
|
|
||||||
import AuthComponent from '../AuthComponent';
|
import AuthComponent from '../AuthComponent';
|
||||||
|
|
||||||
class StartOverPageComponent extends AuthComponent {
|
class StartOverPageComponent extends AuthComponent {
|
||||||
|
@ -27,14 +26,10 @@ class StartOverPageComponent extends AuthComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
renderCleanDialogModal = () => {
|
renderCleanDialogModal = () => {
|
||||||
if (!this.state.showCleanDialog) {
|
|
||||||
return <div />
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ModalContainer onClose={() => this.setState({showCleanDialog: false})}>
|
<Modal show={this.state.showCleanDialog} onHide={() => this.setState({showCleanDialog: false})}>
|
||||||
<ModalDialog onClose={() => this.setState({showCleanDialog: false})}>
|
<Modal.Body>
|
||||||
<h2>Reset environment</h2>
|
<h2><div className="text-center">Reset environment</div></h2>
|
||||||
<p style={{'fontSize': '1.2em', 'marginBottom': '2em'}}>
|
<p style={{'fontSize': '1.2em', 'marginBottom': '2em'}}>
|
||||||
Are you sure you want to reset the environment?
|
Are you sure you want to reset the environment?
|
||||||
</p>
|
</p>
|
||||||
|
@ -60,9 +55,10 @@ class StartOverPageComponent extends AuthComponent {
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</ModalDialog>
|
</Modal.Body>
|
||||||
</ModalContainer>
|
</Modal>
|
||||||
)
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app">Loading...</div>
|
<div id="app"></div>
|
||||||
|
|
||||||
<script>__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__</script>
|
|
||||||
<script type="text/javascript" src="/assets/app.js"></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import StandardConfig from './StandardConfig';
|
import StandardConfig from './StandardConfig';
|
||||||
import AwsConfig from './AwsConfig';
|
import AwsConfig from './AwsConfig';
|
||||||
|
|
||||||
const SERVER_CONFIG_JSON = require('json-loader!../../../server_config.json');
|
const SERVER_CONFIG_JSON = require('../../../server_config.json');
|
||||||
|
|
||||||
const CONFIG_DICT =
|
const CONFIG_DICT =
|
||||||
{
|
{
|
||||||
|
|
|
@ -406,6 +406,10 @@ body {
|
||||||
padding: 0em;
|
padding: 0em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
top: 30%;
|
||||||
|
}
|
||||||
|
|
||||||
/* Print report styling */
|
/* Print report styling */
|
||||||
|
|
||||||
@media print {
|
@media print {
|
||||||
|
|
|
@ -1,32 +1,73 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const args = require('minimist')(process.argv.slice(2));
|
const HtmlWebPackPlugin = require("html-webpack-plugin");
|
||||||
|
|
||||||
// List of allowed environments
|
module.exports = {
|
||||||
const allowedEnvs = ['dev', 'dist', 'test'];
|
module: {
|
||||||
|
rules: [
|
||||||
// Set the correct environment
|
{
|
||||||
let env;
|
test: /\.js$/,
|
||||||
if (args._.length > 0 && args._.indexOf('start') !== -1) {
|
exclude: /node_modules/,
|
||||||
env = 'test';
|
use: {
|
||||||
} else if (args.env) {
|
loader: "babel-loader"
|
||||||
env = args.env;
|
}
|
||||||
} else {
|
},
|
||||||
env = 'dev';
|
{
|
||||||
}
|
test: /\.css$/,
|
||||||
process.env.REACT_WEBPACK_ENV = env;
|
use: [
|
||||||
|
'style-loader',
|
||||||
/**
|
'css-loader'
|
||||||
* Build the webpack configuration
|
]
|
||||||
* @param {String} wantedEnv The wanted environment
|
},
|
||||||
* @return {Object} Webpack config
|
{
|
||||||
*/
|
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
function buildConfig(wantedEnv) {
|
use: {
|
||||||
let isValid = wantedEnv && wantedEnv.length > 0 && allowedEnvs.indexOf(wantedEnv) !== -1;
|
loader: 'file-loader'
|
||||||
let validEnv = isValid ? wantedEnv : 'dev';
|
}
|
||||||
let config = require(path.join(__dirname, 'cfg/' + validEnv));
|
},
|
||||||
return config;
|
{
|
||||||
}
|
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
||||||
|
use: {
|
||||||
module.exports = buildConfig(env);
|
loader: 'url-loader?limit=10000&mimetype=application/font-woff'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(png|jpg|gif)$/,
|
||||||
|
use: {
|
||||||
|
loader: 'url-loader?limit=8192'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.html$/,
|
||||||
|
use: [
|
||||||
|
{
|
||||||
|
loader: "html-loader"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
new HtmlWebPackPlugin({
|
||||||
|
template: "./src/index.html",
|
||||||
|
filename: "./index.html"
|
||||||
|
})
|
||||||
|
],
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.js', '.jsx', '.css'],
|
||||||
|
modules: [
|
||||||
|
'node_modules',
|
||||||
|
path.resolve(__dirname, 'src/')
|
||||||
|
]
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
publicPath: '/'
|
||||||
|
},
|
||||||
|
devServer: {
|
||||||
|
proxy: {
|
||||||
|
'/api': {
|
||||||
|
target: 'https://localhost:5000',
|
||||||
|
secure: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue