Skip to content

Commit

Permalink
Merge pull request #701 from wazuh/issue-651
Browse files Browse the repository at this point in the history
[Reporting] Extended information
  • Loading branch information
Jesús Ángel committed Jul 19, 2018
2 parents 66b24c1 + 4ef6fca commit 3ac1350
Show file tree
Hide file tree
Showing 37 changed files with 2,573 additions and 140 deletions.
12 changes: 11 additions & 1 deletion public/controllers/agents.js
Expand Up @@ -331,7 +331,17 @@ function (
$scope.$broadcast('wazuhSearch',{term})
}

$scope.startVis2Png = () => reportingService.startVis2Png($scope.tab, $scope.agent && $scope.agent.id ? $scope.agent.id : true);
$scope.startVis2Png = () => {
const syscollectorFilters = [];
if($scope.tab === 'syscollector' && $scope.agent && $scope.agent.id){
syscollectorFilters.push(filterHandler.managerQuery(
appState.getClusterInfo().cluster,
true
));
syscollectorFilters.push(filterHandler.agentQuery($scope.agent.id));
}
reportingService.startVis2Png($scope.tab, $scope.agent && $scope.agent.id ? $scope.agent.id : true, syscollectorFilters.length ? syscollectorFilters : null);
}

//Load
try {
Expand Down
24 changes: 19 additions & 5 deletions public/factories/vis-handlers.js
Expand Up @@ -25,9 +25,22 @@ app.factory('visHandlers', function() {
return list;
};

const getAppliedFilters = () => {
let appliedFilters = {};
const getAppliedFilters = syscollector => {
const appliedFilters = {};

if(syscollector){
Object.assign(appliedFilters, {
filters: syscollector,
time:{
from: 'now-1d/d',
to: 'now'
},
searchBar: false,
tables:[]
});
return appliedFilters;
}

// Check raw response from all rendered tables
const tables = list.filter(item => item._scope &&
item._scope.savedObj &&
Expand Down Expand Up @@ -65,11 +78,11 @@ app.factory('visHandlers', function() {
if(list && list.length) {
// Parse applied filters for the first visualization
const filters = list[0]._scope.savedObj.vis.API.queryFilter.getFilters();

// Parse current time range
const { from, to } = list[0]._scope.savedObj.vis.API.timeFilter.time;

appliedFilters = {
Object.assign(appliedFilters, {
filters,
time:{
from: dateMath.parse(from),
Expand All @@ -79,8 +92,9 @@ app.factory('visHandlers', function() {
list[0]._scope.appState.query.query :
false,
tables
};
});
}

return appliedFilters;
};

Expand Down
Binary file modified public/img/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion public/services/generic-request.js
Expand Up @@ -25,7 +25,9 @@ app.service('genericReq', function ($q, $http, appState, wazuhConfig) {
const { timeout } = wazuhConfig.getConfig();
const requestHeaders = { headers: { "Content-Type": 'application/json' }, timeout: timeout || 8000 };
const tmpUrl = chrome.addBasePath(path);


requestHeaders.headers.pattern = appState.getCurrentPattern();

try {
requestHeaders.headers.id = JSON.parse(appState.getCurrentAPI()).id;
} catch (error) {
Expand Down
6 changes: 3 additions & 3 deletions public/services/reporting.js
Expand Up @@ -15,7 +15,7 @@ import $ from 'jquery';
uiModules.get('app/wazuh', [])
.service('reportingService', function ($rootScope, vis2png, rawVisualizations, visHandlers, genericReq, errorHandler) {
return {
startVis2Png: async (tab,isAgents = false) => {
startVis2Png: async (tab, isAgents = false, syscollectorFilters = null) => {
try {
if(vis2png.isWorking()){
errorHandler.handle('Report in progress', 'Reporting',true);
Expand All @@ -34,8 +34,8 @@ uiModules.get('app/wazuh', [])
vis2png.assignHTMLItem(item,tmpHTMLElement);
}

const appliedFilters = visHandlers.getAppliedFilters();

const appliedFilters = visHandlers.getAppliedFilters(syscollectorFilters);
const array = await vis2png.checkArray(idArray);
const name = `wazuh-${isAgents ? 'agents' : 'overview'}-${tab}-${Date.now() / 1000 | 0}.pdf`

Expand Down
4 changes: 2 additions & 2 deletions public/templates/agents/agents.head
Expand Up @@ -38,9 +38,9 @@
<!-- End separator -->

<!-- Reporting button section -->
<div ng-show="tab !== 'welcome' && tab !== 'configuration' && tab !== 'syscollector'">
<div ng-show="tab !== 'welcome' && tab !== 'configuration'">
<!-- Report button -->
<md-button md-no-ink class="md-icon-button small wz-no-margin-padding" tooltip="Generate report" tooltip-placement="bottom" ng-disabled="!rendered || loading || resultState !== 'ready'" ng-click="startVis2Png()" aria-label="Generate report button">
<md-button md-no-ink class="md-icon-button small wz-no-margin-padding" tooltip="Generate report" tooltip-placement="bottom" ng-disabled="(!rendered || loading || resultState !== 'ready') && tab !== 'syscollector'" ng-click="startVis2Png()" aria-label="Generate report button">
<i class="fa fa-fw fa-print" aria-hidden="true"></i>
</md-button>
</div>
Expand Down
Binary file added public/utils/opensans/Montserrat-Light.ttf
Binary file not shown.
Binary file added public/utils/opensans/OpenSans-Bold.ttf
Binary file not shown.
Binary file added public/utils/opensans/OpenSans-BoldItalic.ttf
Binary file not shown.
Binary file added public/utils/opensans/OpenSans-Italic.ttf
Binary file not shown.
Binary file added public/utils/opensans/OpenSans-Light.ttf
Binary file not shown.
Binary file removed public/utils/roboto/Roboto-Bold.ttf
Binary file not shown.
Binary file removed public/utils/roboto/Roboto-BoldItalic.ttf
Binary file not shown.
Binary file removed public/utils/roboto/Roboto-Italic.ttf
Binary file not shown.
Binary file removed public/utils/roboto/Roboto-Regular.ttf
Binary file not shown.
41 changes: 41 additions & 0 deletions server/controllers/wazuh-api.js
Expand Up @@ -425,6 +425,47 @@ export default class WazuhApi {
}
}

async makeGenericRequest (method, path, data, id) {
try {
const wapi_config = await this.wzWrapper.getWazuhConfigurationById(id);

if (wapi_config.error_code > 1) {
//Can not connect to elasticsearch
throw new Error('Could not connect with elasticsearch');
} else if (wapi_config.error_code > 0) {
//Credentials not found
throw new Error('Credentials does not exists');
}

if (!data) {
data = {};
}

const options = {
headers: {
'wazuh-app-version': packageInfo.version
},
username : wapi_config.user,
password : wapi_config.password,
rejectUnauthorized: !wapi_config.insecure
};

const fullUrl = getPath(wapi_config) + path;
const response = await needle(method, fullUrl, data, options);

if(response && response.body && !response.body.error && response.body.data) {
return response.body;
}

throw response && response.body && response.body.error && response.body.message ?
new Error(response.body.message) :
new Error('Unexpected error fetching data from the Wazuh API');

} catch (error) {
return Promise.reject(error);
}
}

requestApi (req, reply) {
if (!req.payload.method) {
return ErrorResponse('Missing param: method', 3015, 400, reply);
Expand Down

0 comments on commit 3ac1350

Please sign in to comment.