Merged 3.6-6.4

This commit is contained in:
Jesús Ángel 2018-09-19 11:38:10 +02:00
parent 947b1a8cc6
commit bc70f81972
8 changed files with 198 additions and 177 deletions

View File

@ -340,7 +340,7 @@ class AgentsController {
? packagesDate.items[0].scan_time
: 'Unknown',
processesDate:
processesDate && processesDate.items && processesDate.items.length
processesDate && processesDate.items && processesDate.items.length
? processesDate.items[0].scan_time
: 'Unknown'
};

View File

@ -9,12 +9,12 @@
*
* Find more information about this on the LICENSE file.
*/
import './management'
import './configuration'
import './new-configuration'
import './status'
import './logs'
import './groups'
import './rules'
import './decoders'
import './monitoring'
import './management';
import './configuration';
import './new-configuration';
import './status';
import './logs';
import './groups';
import './rules';
import './decoders';
import './monitoring';

View File

@ -10,157 +10,179 @@
* Find more information about this on the LICENSE file.
*/
import { uiModules } from 'ui/modules';
import angular from 'angular';
import js2xmlparser from 'js2xmlparser';
import angular from 'angular';
import js2xmlparser from 'js2xmlparser';
import XMLBeautifier from '../../utils/xml-beautifier';
import beautifier from '../../utils/json-beautifier';
import beautifier from '../../utils/json-beautifier';
const app = uiModules.get('app/wazuh', []);
class NewConfigurationController {
constructor($scope, errorHandler, apiReq) {
this.$scope = $scope;
this.errorHandler = errorHandler;
this.apiReq = apiReq;
this.$scope.load = true;
this.$scope.isArray = Array.isArray;
this.configRaw = {};
constructor($scope, errorHandler, apiReq) {
this.$scope = $scope;
this.errorHandler = errorHandler;
this.apiReq = apiReq;
this.$scope.load = true;
this.$scope.isArray = Array.isArray;
this.configRaw = {};
this.$scope.configurationTab = '';
this.$scope.configurationSubTab = '';
this.$scope.configurationSection = '';
this.$scope.configurationTab = '';
this.$scope.configurationSubTab = '';
this.$scope.configurationSection = '';
this.$scope.getXML = name => this.getXML(name);
this.$scope.getJSON = name => this.getJSON(name);
this.$scope.switchConfigurationTab = configurationTab => this.switchConfigurationTab(configurationTab);
this.$scope.switchConfigurationSubTab = configurationSubTab => this.switchConfigurationSubTab(configurationSubTab);
this.$scope.switchConfigurationSection = configurationSection => this.switchConfigurationSection(configurationSection);
}
this.$scope.getXML = name => this.getXML(name);
this.$scope.getJSON = name => this.getJSON(name);
this.$scope.switchConfigurationTab = configurationTab =>
this.switchConfigurationTab(configurationTab);
this.$scope.switchConfigurationSubTab = configurationSubTab =>
this.switchConfigurationSubTab(configurationSubTab);
this.$scope.switchConfigurationSection = configurationSection =>
this.switchConfigurationSection(configurationSection);
}
/**
* Initialize
*/
$onInit() {
this.load();
}
/**
* Initialize
*/
$onInit() {
this.load();
}
/**
* Switchs between configuration tabs
* @param {*} configurationTab
*/
switchConfigurationTab(configurationTab) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSubTab = false;
this.$scope.configurationSection = false;
this.$scope.configurationTab = configurationTab;
if(!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Switchs between configuration tabs
* @param {*} configurationTab
*/
switchConfigurationTab(configurationTab) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSubTab = false;
this.$scope.configurationSection = false;
this.$scope.configurationTab = configurationTab;
if (!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Switchs between configuration sub-tabs
* @param {*} configurationSubTab
*/
switchConfigurationSubTab(configurationSubTab) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSection = false;
this.$scope.configurationSubTab = configurationSubTab;
if(!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Switchs between configuration sub-tabs
* @param {*} configurationSubTab
*/
switchConfigurationSubTab(configurationSubTab) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSection = false;
this.$scope.configurationSubTab = configurationSubTab;
if (!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Switchs between configuration sections
* @param {*} configurationSection
*/
switchConfigurationSection(configurationSection) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSection = configurationSection;
if(!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Switchs between configuration sections
* @param {*} configurationSection
*/
switchConfigurationSection(configurationSection) {
this.$scope.XMLContent = false;
this.$scope.JSONContent = false;
this.$scope.configurationSection = configurationSection;
if (!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Assigns XML raw content for specific configuration
* @param {string} name Name of the configuration section
*/
getXML(name) {
this.$scope.JSONContent = false;
if(this.$scope.XMLContent){
this.$scope.XMLContent = false;
/**
* Assigns XML raw content for specific configuration
* @param {string} name Name of the configuration section
*/
getXML(name) {
this.$scope.JSONContent = false;
if (this.$scope.XMLContent) {
this.$scope.XMLContent = false;
} else {
try {
if (name) {
this.$scope.XMLContent = XMLBeautifier(
js2xmlparser.parse(name, this.configRaw[name])
);
} else {
try {
if (name) {
this.$scope.XMLContent = XMLBeautifier(js2xmlparser.parse(name, this.configRaw[name]));
}
else {
this.$scope.XMLContent = XMLBeautifier(js2xmlparser.parse('configuration', this.configRaw));
}
} catch (error) { this.$scope.XMLContent = false; }
this.$scope.XMLContent = XMLBeautifier(
js2xmlparser.parse('configuration', this.configRaw)
);
}
if(!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Assigns JSON raw content for specific configuration
* @param {string} name Name of the configuration section
*/
getJSON(name) {
} catch (error) {
this.$scope.XMLContent = false;
if(this.$scope.JSONContent){
this.$scope.JSONContent = false;
} else {
try {
if (name) {
this.$scope.JSONContent = beautifier.prettyPrint(this.configRaw[name]);
}
else {
this.$scope.JSONContent = beautifier.prettyPrint(this.configRaw);
}
} catch (error) { this.$scope.JSONContent = false; }
}
if(!this.$scope.$$phase) this.$scope.$digest();
}
}
if (!this.$scope.$$phase) this.$scope.$digest();
}
/**
* Fetchs required data
*/
async load() {
try{
const data = await this.apiReq.request('GET', '/manager/configuration', {});
Object.assign(this.configRaw, angular.copy(data.data.data))
this.$scope.managerConfiguration = data.data.data;
/**
* Assigns JSON raw content for specific configuration
* @param {string} name Name of the configuration section
*/
getJSON(name) {
this.$scope.XMLContent = false;
if (this.$scope.JSONContent) {
this.$scope.JSONContent = false;
} else {
try {
if (name) {
this.$scope.JSONContent = beautifier.prettyPrint(
this.configRaw[name]
);
} else {
this.$scope.JSONContent = beautifier.prettyPrint(this.configRaw);
}
} catch (error) {
this.$scope.JSONContent = false;
}
}
if (!this.$scope.$$phase) this.$scope.$digest();
}
if(this.$scope.managerConfiguration && this.$scope.managerConfiguration['active-response']){
/**
* Fetchs required data
*/
async load() {
try {
const data = await this.apiReq.request(
'GET',
'/manager/configuration',
{}
);
Object.assign(this.configRaw, angular.copy(data.data.data));
this.$scope.managerConfiguration = data.data.data;
for(const ar of this.$scope.managerConfiguration['active-response']) {
const rulesArray = ar.rules_id ?
ar.rules_id.split(',') :
[];
if(ar.rules_id && rulesArray.length > 1){
const tmp = [];
if (
this.$scope.managerConfiguration &&
this.$scope.managerConfiguration['active-response']
) {
for (const ar of this.$scope.managerConfiguration['active-response']) {
const rulesArray = ar.rules_id ? ar.rules_id.split(',') : [];
if (ar.rules_id && rulesArray.length > 1) {
const tmp = [];
for(const id of rulesArray){
const rule = await this.apiReq.request('GET',`/rules/${id}`,{});
tmp.push(rule.data.data.items[0]);
}
ar.rules = tmp;
} else if(ar.rules_id){
const rule = await this.apiReq.request('GET',`/rules/${ar.rules_id}`,{});
ar.rule = rule.data.data.items[0];
}
}
for (const id of rulesArray) {
const rule = await this.apiReq.request('GET', `/rules/${id}`, {});
tmp.push(rule.data.data.items[0]);
}
this.$scope.load = false;
if(!this.$scope.$$phase) this.$scope.$digest();
return;
} catch (error) {
this.errorHandler.handle(error,'Manager');
ar.rules = tmp;
} else if (ar.rules_id) {
const rule = await this.apiReq.request(
'GET',
`/rules/${ar.rules_id}`,
{}
);
ar.rule = rule.data.data.items[0];
}
}
return;
}
this.$scope.load = false;
if (!this.$scope.$$phase) this.$scope.$digest();
return;
} catch (error) {
this.errorHandler.handle(error, 'Manager');
}
return;
}
}
app.controller('managementNewConfigurationController', NewConfigurationController);
app.controller(
'managementNewConfigurationController',
NewConfigurationController
);

View File

@ -16,7 +16,7 @@ import { TabNames } from '../../utils/tab-names';
import { TabDescription } from '../../../server/reporting/tab-description';
import {
metricsGeneral,
metricsGeneral,
metricsAudit,
metricsVulnerability,
metricsScap,

View File

@ -10,18 +10,18 @@
* Find more information about this on the LICENSE file.
*/
import template from './wz-config-item.html';
import template from './wz-config-item.html';
import { uiModules } from 'ui/modules';
const app = uiModules.get('app/wazuh', []);
app.directive('wzConfigItem', function () {
return {
restrict: 'E',
scope: {
label: '@label',
value: '@value'
},
template: template
}
app.directive('wzConfigItem', function() {
return {
restrict: 'E',
scope: {
label: '@label',
value: '@value'
},
template: template
};
});

View File

@ -10,15 +10,15 @@
* Find more information about this on the LICENSE file.
*/
import template from './wz-no-config.html';
import template from './wz-no-config.html';
import { uiModules } from 'ui/modules';
const app = uiModules.get('app/wazuh', []);
app.directive('wzNoConfig', function () {
return {
restrict: 'E',
scope: {},
template: template
}
app.directive('wzNoConfig', function() {
return {
restrict: 'E',
scope: {},
template: template
};
});

View File

@ -79,7 +79,7 @@ const metricsAws = {
};
export default {
metricsGeneral,
metricsGeneral,
metricsAudit,
metricsVulnerability,
metricsScap,

View File

@ -37,24 +37,23 @@ export const TabNames = {
groups: 'Groups',
monitoring: 'Monitoring',
reporting: 'Reporting',
"new-configuration": "New configuration (Beta)",
"registration-service": "Registration service",
"cluster": "Cluster",
"wazuh-modules": "Wazuh modules",
"commands-active-response": "Commands & Active response",
"integrations": "Integrations",
"database-output": "Database output",
"alerts": "Alerts",
"global-configuration": "Global configuration",
"integrity-monitoring": "Integrity monitoring",
"policy-monitoring": "Policy monitoring",
"log-collection": "Log collection",
"agentless": "Agentless",
"inventory": "Inventory",
"osquery": "Osquery",
"open-scap": "OpenSCAP",
"cis-cat": "CIS-CAT",
"vulnerabilities": "Vulnerabilities",
"amazon-s3": "Amazon S3"
'new-configuration': 'New configuration (Beta)',
'registration-service': 'Registration service',
cluster: 'Cluster',
'wazuh-modules': 'Wazuh modules',
'commands-active-response': 'Commands & Active response',
integrations: 'Integrations',
'database-output': 'Database output',
alerts: 'Alerts',
'global-configuration': 'Global configuration',
'integrity-monitoring': 'Integrity monitoring',
'policy-monitoring': 'Policy monitoring',
'log-collection': 'Log collection',
agentless: 'Agentless',
inventory: 'Inventory',
osquery: 'Osquery',
'open-scap': 'OpenSCAP',
'cis-cat': 'CIS-CAT',
vulnerabilities: 'Vulnerabilities',
'amazon-s3': 'Amazon S3'
};