implemented user level authentication for integria ims integration
This commit is contained in:
parent
f0f7244d84
commit
fdeaf52912
|
@ -0,0 +1,6 @@
|
|||
START TRANSACTION;
|
||||
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_user` VARCHAR(60);
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_pass` VARCHAR(45);
|
||||
|
||||
COMMIT;
|
|
@ -1527,6 +1527,8 @@ ALTER TABLE `tusuario` MODIFY COLUMN `default_event_filter` int(10) unsigned NOT
|
|||
ADD CONSTRAINT `fk_filter_id` FOREIGN KEY `fk_filter_id` (`id_filter`) REFERENCES `tevent_filter` (`id_filter`) ON DELETE SET NULL ON UPDATE RESTRICT,
|
||||
DROP FOREIGN KEY `fk_id_filter`,
|
||||
DROP INDEX `fk_id_filter`;
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_user` VARCHAR(60);
|
||||
ALTER TABLE `tusuario` ADD COLUMN `integria_user_level_pass` VARCHAR(45);
|
||||
|
||||
|
||||
-- ---------------------------------------------------------------------
|
||||
|
|
|
@ -55,7 +55,7 @@ $params = [
|
|||
agents_get_name($id_agent),
|
||||
];
|
||||
|
||||
$result = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incidents', $params, false, 'json', ',');
|
||||
$result = integria_api_call(null, null, null, null, 'get_incidents', $params, false, 'json', ',');
|
||||
|
||||
$result = json_decode($result, true);
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ if (is_ajax()) {
|
|||
if ($get_integria_ticket_custom_types) {
|
||||
$ticket_type_id = get_parameter('ticket_type_id');
|
||||
|
||||
$api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_fields', $ticket_type_id, false, 'json');
|
||||
$api_call = integria_api_call(null, null, null, null, 'get_incident_fields', $ticket_type_id, false, 'json');
|
||||
|
||||
echo $api_call;
|
||||
return;
|
||||
|
|
|
@ -41,8 +41,10 @@ if (is_ajax()) {
|
|||
$integria_pass = get_parameter('integria_pass', '');
|
||||
$integria_api_hostname = get_parameter('api_hostname', '');
|
||||
$integria_api_pass = get_parameter('api_pass', '');
|
||||
$user_level_conf = get_parameter('user_level_conf', 0);
|
||||
$user_level_conf_bool = $user_level_conf === 'true' ? true : false;
|
||||
|
||||
$login_result = integria_api_call($integria_api_hostname, $integria_user, $integria_pass, $integria_api_pass, 'get_login', []);
|
||||
$login_result = integria_api_call($integria_api_hostname, $integria_user, $integria_pass, $integria_api_pass, 'get_login', [], false, '', '', $user_level_conf_bool);
|
||||
|
||||
if ($login_result != false) {
|
||||
echo json_encode(['login' => 1]);
|
||||
|
@ -53,7 +55,7 @@ if (is_ajax()) {
|
|||
return;
|
||||
}
|
||||
|
||||
$has_connection = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_login', []);
|
||||
$has_connection = integria_api_call(null, null, null, null, 'get_login', []);
|
||||
|
||||
if ($has_connection === false && $config['integria_enabled']) {
|
||||
ui_print_error_message(__('Integria IMS API is not reachable'));
|
||||
|
@ -86,7 +88,7 @@ if (get_parameter('update_config', 0) == 1) {
|
|||
);
|
||||
}
|
||||
|
||||
$ticket_types = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_types', '', false, 'json');
|
||||
$ticket_types = integria_api_call(null, null, null, null, 'get_types', '', false, 'json');
|
||||
|
||||
$types_string = '';
|
||||
|
||||
|
@ -216,19 +218,19 @@ $integria_users_values = [];
|
|||
$integria_types_values = [];
|
||||
$integria_status_values = [];
|
||||
|
||||
$integria_groups_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_groups', []);
|
||||
$integria_groups_csv = integria_api_call(null, null, null, null, 'get_groups', []);
|
||||
|
||||
get_array_from_csv_data_pair($integria_groups_csv, $integria_group_values);
|
||||
|
||||
$integria_status_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incidents_status', []);
|
||||
$integria_status_csv = integria_api_call(null, null, null, null, 'get_incidents_status', []);
|
||||
|
||||
get_array_from_csv_data_pair($integria_status_csv, $integria_status_values);
|
||||
|
||||
$integria_criticity_levels_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_priorities', []);
|
||||
$integria_criticity_levels_csv = integria_api_call(null, null, null, null, 'get_incident_priorities', []);
|
||||
|
||||
get_array_from_csv_data_pair($integria_criticity_levels_csv, $integria_criticity_values);
|
||||
|
||||
$integria_users_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_users', []);
|
||||
$integria_users_csv = integria_api_call(null, null, null, null, 'get_users', []);
|
||||
|
||||
$csv_array = explode("\n", $integria_users_csv);
|
||||
|
||||
|
@ -238,7 +240,7 @@ foreach ($csv_array as $csv_line) {
|
|||
}
|
||||
}
|
||||
|
||||
$integria_types_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_types', []);
|
||||
$integria_types_csv = integria_api_call(null, null, null, null, 'get_types', []);
|
||||
|
||||
get_array_from_csv_data_pair($integria_types_csv, $integria_types_values);
|
||||
|
||||
|
@ -267,6 +269,12 @@ $table_remote->class = 'databox filters';
|
|||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
|
||||
// Enable eHorus user configuration.
|
||||
$row = [];
|
||||
$row['name'] = ('Integria configuration at user level');
|
||||
$row['control'] = html_print_checkbox_switch('integria_user_level_conf', 1, $config['integria_user_level_conf'], true);
|
||||
$table_remote->data['integria_user_level_conf'] = $row;
|
||||
|
||||
// Integria user.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
|
@ -632,6 +640,29 @@ echo '</form>';
|
|||
|
||||
<script type="text/javascript">
|
||||
|
||||
if($('input:checkbox[name="integria_user_level_conf"]').is(':checked'))
|
||||
{
|
||||
$('#integria-remote-setup-integria_user').hide();
|
||||
$('#integria-remote-setup-integria_pass').hide()
|
||||
}
|
||||
|
||||
var handleUserLevel = function(event) {
|
||||
var is_checked = $('input:checkbox[name="integria_enabled"]').is(':checked');
|
||||
var is_checked_userlevel = $('input:checkbox[name="integria_user_level_conf"]').is(':checked');
|
||||
|
||||
if (event.target.value == '1' && is_checked && !is_checked_userlevel) {
|
||||
showUserPass();
|
||||
$('input:checkbox[name="integria_user_level_conf"]').attr('checked', true);
|
||||
}
|
||||
else {
|
||||
hideUserPass();
|
||||
$('input:checkbox[name="integria_user_level_conf"]').attr('checked', false);
|
||||
};
|
||||
}
|
||||
|
||||
$('input:checkbox[name="integria_enabled"]').change(handleEnable);
|
||||
$('input:checkbox[name="integria_user_level_conf"]').change(handleUserLevel);
|
||||
|
||||
if(!$('input:checkbox[name="integria_enabled"]').is(':checked')) {
|
||||
$('#form_remote').hide();
|
||||
$('#form_custom_response_settings').hide();
|
||||
|
@ -723,6 +754,7 @@ echo '</form>';
|
|||
var integria_pass = $('input[name=integria_pass]').val();
|
||||
var api_hostname = $('input[name=integria_hostname]').val();
|
||||
var api_pass = $('input[name=integria_api_pass]').val();
|
||||
var user_level_conf = $('input:checkbox[name="integria_user_level_conf"]').is(':checked');
|
||||
|
||||
var data = {
|
||||
page: 'godmode/setup/setup_integria',
|
||||
|
@ -731,6 +763,7 @@ echo '</form>';
|
|||
integria_pass: integria_pass,
|
||||
api_hostname: api_hostname,
|
||||
api_pass: api_pass,
|
||||
user_level_conf: user_level_conf,
|
||||
}
|
||||
|
||||
// AJAX call to check API connection.
|
||||
|
|
|
@ -35,7 +35,7 @@ if (check_login()) {
|
|||
$search_term = get_parameter('search_term', '');
|
||||
|
||||
if ($get_users) {
|
||||
$integria_users_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_users', []);
|
||||
$integria_users_csv = integria_api_call(null, null, null, null, 'get_users', []);
|
||||
|
||||
$csv_array = explode("\n", $integria_users_csv);
|
||||
|
||||
|
|
|
@ -1642,6 +1642,10 @@ function config_update_config()
|
|||
break;
|
||||
|
||||
case 'integria':
|
||||
if (!config_update_value('integria_user_level_conf', (int) get_parameter('integria_user_level_conf', 0))) {
|
||||
$error_update[] = __('Integria user login');
|
||||
}
|
||||
|
||||
if (!config_update_value('integria_enabled', (int) get_parameter('integria_enabled', 0))) {
|
||||
$error_update[] = __('Enable Integria IMS');
|
||||
}
|
||||
|
@ -3244,6 +3248,10 @@ function config_process_config()
|
|||
}
|
||||
|
||||
// Integria.
|
||||
if (!isset($config['integria_user_level_conf'])) {
|
||||
config_update_value('integria_user_level_conf', 0);
|
||||
}
|
||||
|
||||
if (!isset($config['integria_enabled'])) {
|
||||
config_update_value('integria_enabled', 0);
|
||||
}
|
||||
|
|
|
@ -2978,9 +2978,9 @@ function grafico_incidente_prioridad()
|
|||
{
|
||||
global $config;
|
||||
|
||||
$integria_ticket_count_by_priority_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_tickets_count', ['prioridad', 30], false, '', '|;|');
|
||||
$integria_ticket_count_by_priority_json = integria_api_call(null, null, null, null, 'get_tickets_count', ['prioridad', 30], false, '', '|;|');
|
||||
|
||||
$integria_priorities_map_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_priorities', '', false, 'json');
|
||||
$integria_priorities_map_json = integria_api_call(null, null, null, null, 'get_incident_priorities', '', false, 'json');
|
||||
|
||||
$integria_ticket_count_by_priority = json_decode($integria_ticket_count_by_priority_json, true);
|
||||
$integria_priorities_map = json_decode($integria_priorities_map_json, true);
|
||||
|
@ -3023,9 +3023,9 @@ function graph_incidents_status()
|
|||
{
|
||||
global $config;
|
||||
|
||||
$integria_ticket_count_by_status_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_tickets_count', ['estado', 30], false, '', '|;|');
|
||||
$integria_ticket_count_by_status_json = integria_api_call(null, null, null, null, 'get_tickets_count', ['estado', 30], false, '', '|;|');
|
||||
|
||||
$integria_status_map_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incidents_status', '', false, 'json');
|
||||
$integria_status_map_json = integria_api_call(null, null, null, null, 'get_incidents_status', '', false, 'json');
|
||||
|
||||
$integria_ticket_count_by_status = json_decode($integria_ticket_count_by_status_json, true);
|
||||
$integria_status_map = json_decode($integria_status_map_json, true);
|
||||
|
@ -3068,9 +3068,9 @@ function graphic_incident_group()
|
|||
{
|
||||
global $config;
|
||||
|
||||
$integria_ticket_count_by_group_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_tickets_count', ['id_grupo', 30], false, '', '|;|');
|
||||
$integria_ticket_count_by_group_json = integria_api_call(null, null, null, null, 'get_tickets_count', ['id_grupo', 30], false, '', '|;|');
|
||||
|
||||
$integria_group_map_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_groups', '', false, 'json');
|
||||
$integria_group_map_json = integria_api_call(null, null, null, null, 'get_groups', '', false, 'json');
|
||||
|
||||
$integria_ticket_count_by_group = json_decode($integria_ticket_count_by_group_json, true);
|
||||
$integria_group_map = json_decode($integria_group_map_json, true);
|
||||
|
@ -3114,7 +3114,7 @@ function graphic_incident_user()
|
|||
{
|
||||
global $config;
|
||||
|
||||
$integria_ticket_count_by_user_json = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_tickets_count', ['id_usuario', 30], false, '', '|;|');
|
||||
$integria_ticket_count_by_user_json = integria_api_call(null, null, null, null, 'get_tickets_count', ['id_usuario', 30], false, '', '|;|');
|
||||
|
||||
$integria_ticket_count_by_user = json_decode($integria_ticket_count_by_user_json, true);
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ global $config;
|
|||
|
||||
require_once $config['homedir'].'/include/functions_ui.php';
|
||||
require_once $config['homedir'].'/include/functions_html.php';
|
||||
require_once $config['homedir'].'/include/functions_users.php';
|
||||
require_once $config['homedir'].'/include/functions.php';
|
||||
|
||||
|
||||
|
@ -137,7 +138,7 @@ function integriaims_get_details($details, $detail_index=false)
|
|||
break;
|
||||
}
|
||||
|
||||
$api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], $operation);
|
||||
$api_call = integria_api_call(null, null, null, null, $operation);
|
||||
$result = [];
|
||||
get_array_from_csv_data_pair($api_call, $result);
|
||||
|
||||
|
@ -165,8 +166,42 @@ function integriaims_get_details($details, $detail_index=false)
|
|||
*
|
||||
* @return boolean True if API request succeeded, false if API request failed.
|
||||
*/
|
||||
function integria_api_call($api_hostname, $user, $user_pass, $api_pass, $operation, $params='', $show_credentials_error_msg=false, $return_type='', $token='')
|
||||
function integria_api_call($api_hostname=null, $user=null, $user_pass=null, $api_pass=null, $operation, $params='', $show_credentials_error_msg=false, $return_type='', $token='', $user_level_conf=null)
|
||||
{
|
||||
global $config;
|
||||
|
||||
if ($user_level_conf === null) {
|
||||
$user_level_conf = (bool) $config['integria_user_level_conf'];
|
||||
}
|
||||
|
||||
$user_info = users_get_user_by_id($config['id_user']);
|
||||
|
||||
// API access data.
|
||||
if ($api_hostname === null) {
|
||||
$api_hostname = $config['integria_hostname'];
|
||||
}
|
||||
|
||||
if ($api_pass === null) {
|
||||
$api_pass = $config['integria_api_pass'];
|
||||
}
|
||||
|
||||
// Integria user and password.
|
||||
if ($user === null || $user_level_conf === true) {
|
||||
$user = $config['integria_user'];
|
||||
|
||||
if ($user_level_conf === true) {
|
||||
$user = $user_info['integria_user_level_user'];
|
||||
}
|
||||
}
|
||||
|
||||
if ($user_pass === null || $user_level_conf === true) {
|
||||
$user_pass = $config['integria_pass'];
|
||||
|
||||
if ($user_level_conf === true) {
|
||||
$user_pass = $user_info['integria_user_level_pass'];
|
||||
}
|
||||
}
|
||||
|
||||
if (is_array($params)) {
|
||||
$params = implode($token, $params);
|
||||
}
|
||||
|
@ -352,10 +387,10 @@ function get_tickets_integriaims($tickets_filters)
|
|||
|
||||
// API call.
|
||||
$result_api_call_list = integria_api_call(
|
||||
$config['integria_hostname'],
|
||||
$config['integria_user'],
|
||||
$config['integria_pass'],
|
||||
$config['integria_api_pass'],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'get_incidents',
|
||||
[
|
||||
$incident_text,
|
||||
|
|
|
@ -4877,7 +4877,8 @@ input:checked + .p-slider:before {
|
|||
|
||||
.user_edit_first_row,
|
||||
.user_edit_second_row,
|
||||
.user_edit_third_row {
|
||||
.user_edit_third_row,
|
||||
.user_edit_fourth_row {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ if ($config['integria_enabled'] == 0) {
|
|||
}
|
||||
|
||||
// Check connection to Integria IMS API.
|
||||
$has_connection = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_login');
|
||||
$has_connection = integria_api_call(null, null, null, null, 'get_login');
|
||||
|
||||
if ($has_connection === false) {
|
||||
ui_print_error_message(__('Integria IMS API is not reachable'));
|
||||
|
@ -59,19 +59,19 @@ $integria_users_values = [];
|
|||
$integria_types_values = [];
|
||||
$integria_status_values = [];
|
||||
|
||||
$integria_groups_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_groups');
|
||||
$integria_groups_csv = integria_api_call(null, null, null, null, 'get_groups');
|
||||
|
||||
get_array_from_csv_data_pair($integria_groups_csv, $integria_group_values);
|
||||
|
||||
$integria_status_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incidents_status');
|
||||
$integria_status_csv = integria_api_call(null, null, null, null, 'get_incidents_status');
|
||||
|
||||
get_array_from_csv_data_pair($integria_status_csv, $integria_status_values);
|
||||
|
||||
$integria_criticity_levels_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_priorities');
|
||||
$integria_criticity_levels_csv = integria_api_call(null, null, null, null, 'get_incident_priorities');
|
||||
|
||||
get_array_from_csv_data_pair($integria_criticity_levels_csv, $integria_criticity_values);
|
||||
|
||||
$integria_users_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_users');
|
||||
$integria_users_csv = integria_api_call(null, null, null, null, 'get_users');
|
||||
|
||||
$csv_array = explode("\n", $integria_users_csv);
|
||||
|
||||
|
@ -81,7 +81,7 @@ foreach ($csv_array as $csv_line) {
|
|||
}
|
||||
}
|
||||
|
||||
$integria_types_csv = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_types');
|
||||
$integria_types_csv = integria_api_call(null, null, null, null, 'get_types');
|
||||
|
||||
get_array_from_csv_data_pair($integria_types_csv, $integria_types_values);
|
||||
|
||||
|
@ -105,7 +105,7 @@ $incident_content = str_replace(',', ':::', $incident_content);
|
|||
// Perform action.
|
||||
if ($create_incident === true) {
|
||||
// Call Integria IMS API method to create an incident.
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $incident_creator, $config['integria_pass'], $config['integria_api_pass'], 'create_incident', [$incident_title, $incident_group_id, $incident_criticity_id, $incident_content, '', $incident_type, '', $incident_owner, '0', $incident_status], false, '', ',');
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'create_incident', [$incident_title, $incident_group_id, $incident_criticity_id, $incident_content, '', $incident_type, '', $incident_owner, '0', $incident_status], false, '', ',');
|
||||
|
||||
// Necessary to explicitly set true if not false because function returns api call result in case of success instead of true value.
|
||||
$incident_created_ok = ($result_api_call != false) ? true : false;
|
||||
|
@ -117,7 +117,7 @@ if ($create_incident === true) {
|
|||
);
|
||||
} else if ($update_incident === true) {
|
||||
// Call Integria IMS API method to update an incident.
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'update_incident', [$incident_id_edit, $incident_title, $incident_content, '', $incident_group_id, $incident_criticity_id, 0, $incident_status, $incident_owner, 0, $incident_type], false, '', ',');
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'update_incident', [$incident_id_edit, $incident_title, $incident_content, '', $incident_group_id, $incident_criticity_id, 0, $incident_status, $incident_owner, 0, $incident_type], false, '', ',');
|
||||
|
||||
// Necessary to explicitly set true if not false because function returns api call result in case of success instead of true value.
|
||||
$incident_updated_ok = ($result_api_call != false) ? true : false;
|
||||
|
@ -132,7 +132,7 @@ if ($create_incident === true) {
|
|||
// If incident id is specified, retrieve incident values from api to populate combos with such values.
|
||||
if ($update) {
|
||||
// Call Integria IMS API method to get details of an incident given its id.
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_details', [$incident_id_edit], false, '', ',');
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'get_incident_details', [$incident_id_edit], false, '', ',');
|
||||
|
||||
// API call does not return indexes, therefore future modifications of API function in Integria IMS may lead to inconsistencies when accessing resulting array in this file.
|
||||
$incident_details_separator = explode(',', $result_api_call);
|
||||
|
|
|
@ -32,7 +32,7 @@ if ($config['integria_enabled'] == 0) {
|
|||
}
|
||||
|
||||
// Check connection to Integria IMS API.
|
||||
$has_connection = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_login', []);
|
||||
$has_connection = integria_api_call(null, null, null, null, 'get_login', []);
|
||||
|
||||
if ($has_connection === false) {
|
||||
ui_print_error_message(__('Integria IMS API is not reachable'));
|
||||
|
@ -46,10 +46,10 @@ ui_require_css_file('integriaims');
|
|||
$incident_id = (int) get_parameter('incident_id');
|
||||
// API call.
|
||||
$result_api_call_list = integria_api_call(
|
||||
$config['integria_hostname'],
|
||||
$config['integria_user'],
|
||||
$config['integria_pass'],
|
||||
$config['integria_api_pass'],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'get_incident_details',
|
||||
[$incident_id]
|
||||
);
|
||||
|
@ -159,7 +159,7 @@ if ($upload_file && ($_FILES['userfile']['name'] != '')) {
|
|||
|
||||
$filecontent = base64_encode(file_get_contents($_FILES['userfile']['tmp_name']));
|
||||
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'attach_file', [$incident_id, $filename, $filesize, $filedescription, $filecontent], false, '', ';');
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'attach_file', [$incident_id, $filename, $filesize, $filedescription, $filecontent], false, '', ';');
|
||||
|
||||
// API method returns '0' string if success.
|
||||
$file_added = ($result_api_call === '0') ? true : false;
|
||||
|
@ -176,7 +176,7 @@ if ($upload_file && ($_FILES['userfile']['name'] != '')) {
|
|||
|
||||
// Delete file.
|
||||
if (isset($_GET['delete_file'])) {
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'delete_file', [$delete_file_id]);
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'delete_file', [$delete_file_id]);
|
||||
|
||||
$file_deleted = false;
|
||||
|
||||
|
@ -193,7 +193,7 @@ if (isset($_GET['delete_file'])) {
|
|||
|
||||
// Download file.
|
||||
if (isset($_GET['download_file'])) {
|
||||
$file_base64 = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'download_file', [$download_file_id]);
|
||||
$file_base64 = integria_api_call(null, null, null, null, 'download_file', [$download_file_id]);
|
||||
ob_end_clean();
|
||||
|
||||
$decoded = base64_decode($file_base64);
|
||||
|
@ -219,7 +219,7 @@ if (isset($_GET['download_file'])) {
|
|||
}
|
||||
|
||||
// Retrieve files belonging to incident and create list table.
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_files', [$incident_id]);
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'get_incident_files', [$incident_id]);
|
||||
|
||||
if ($result_api_call != false && strlen($result_api_call) > 0) {
|
||||
$files = [];
|
||||
|
@ -322,7 +322,7 @@ $table_comments_section->data[1][1] .= '<div class="w100p right">'.html_print_su
|
|||
|
||||
// Upload comment. If ticket is closed, this action cannot be performed.
|
||||
if ($upload_comment && $array_get_incidents[6] != 7) {
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'create_workunit', [$incident_id, $comment_description, '0.00', 0, 1, '0'], false, '', '|;|');
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'create_workunit', [$incident_id, $comment_description, '0.00', 0, 1, '0'], false, '', '|;|');
|
||||
|
||||
// API method returns id of new comment if success.
|
||||
$comment_added = ($result_api_call >= '0') ? true : false;
|
||||
|
@ -335,7 +335,7 @@ if ($upload_comment && $array_get_incidents[6] != 7) {
|
|||
}
|
||||
|
||||
// Retrieve comments belonging to incident and create comments table.
|
||||
$result_api_call = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_incident_workunits', [$incident_id]);
|
||||
$result_api_call = integria_api_call(null, null, null, null, 'get_incident_workunits', [$incident_id]);
|
||||
|
||||
if ($result_api_call != false && strlen($result_api_call) > 0) {
|
||||
$comments = [];
|
||||
|
|
|
@ -43,7 +43,7 @@ if ($config['integria_enabled'] == 0) {
|
|||
}
|
||||
|
||||
// Check connection to Integria IMS API.
|
||||
$has_connection = integria_api_call($config['integria_hostname'], $config['integria_user'], $config['integria_pass'], $config['integria_api_pass'], 'get_login', []);
|
||||
$has_connection = integria_api_call(null, null, null, null, 'get_login', []);
|
||||
|
||||
if ($has_connection === false) {
|
||||
ui_print_error_message(__('Integria IMS API is not reachable'));
|
||||
|
@ -70,10 +70,10 @@ $delete_incident = get_parameter('delete_incident');
|
|||
if ($delete_incident) {
|
||||
// Call Integria IMS API method to delete an incident.
|
||||
$result_api_call_delete = integria_api_call(
|
||||
$config['integria_hostname'],
|
||||
$config['integria_user'],
|
||||
$config['integria_pass'],
|
||||
$config['integria_api_pass'],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
'delete_incident',
|
||||
[$delete_incident]
|
||||
);
|
||||
|
|
|
@ -127,7 +127,8 @@ if (isset($_GET['modified']) && !$view_mode) {
|
|||
$upd_info['ehorus_user_level_pass'] = get_parameter('ehorus_user_level_pass');
|
||||
$upd_info['ehorus_user_level_enabled'] = get_parameter('ehorus_user_level_enabled', 0);
|
||||
|
||||
|
||||
$upd_info['integria_user_level_user'] = get_parameter('integria_user_level_user');
|
||||
$upd_info['integria_user_level_pass'] = get_parameter('integria_user_level_pass');
|
||||
|
||||
$is_admin = db_get_value('is_admin', 'tusuario', 'id_user', $id);
|
||||
|
||||
|
@ -729,12 +730,57 @@ if ($config['ehorus_enabled'] && $config['ehorus_user_level_conf']) {
|
|||
$row['control'] .= '<span id="test-ehorus-message" class="invisible"></span>';
|
||||
$table_remote->data['ehorus_test'] = $row;
|
||||
|
||||
echo '<div class="ehorus_user_conf">';
|
||||
|
||||
echo '<div class="ehorus_user_conf user_edit_fourth_row">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
if ($config['integria_enabled'] && $config['integria_user_level_conf']) {
|
||||
// Integria IMS user remote login.
|
||||
$table_remote = new StdClass();
|
||||
$table_remote->data = [];
|
||||
$table_remote->width = '100%';
|
||||
$table_remote->id = 'integria-remote-setup';
|
||||
$table_remote->class = 'white_box';
|
||||
$table_remote->size['name'] = '30%';
|
||||
$table_remote->style['name'] = 'font-weight: bold';
|
||||
|
||||
// Integria IMS user level authentication.
|
||||
// Title
|
||||
$row = [];
|
||||
$row['control'] = '<p class="edit_user_labels">'.__('Integria user configuration').': </p>';
|
||||
$table_remote->data['integria_user_level_conf'] = $row;
|
||||
|
||||
// Integria IMS user.
|
||||
$row = [];
|
||||
$row['name'] = __('User');
|
||||
$row['control'] = html_print_input_text('integria_user_level_user', $user_info['integria_user_level_user'], '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_user'] = $row;
|
||||
|
||||
// Integria IMS pass.
|
||||
$row = [];
|
||||
$row['name'] = __('Password');
|
||||
$row['control'] = html_print_input_password('integria_user_level_pass', io_output_password($user_info['integria_user_level_pass']), '', 30, 100, true);
|
||||
$table_remote->data['integria_user_level_pass'] = $row;
|
||||
|
||||
// Test.
|
||||
$integria_host = db_get_value('value', 'tconfig', 'token', 'integria_hostname');
|
||||
$integria_api_pass = db_get_value('value', 'tconfig', 'token', 'integria_api_pass');
|
||||
|
||||
$row = [];
|
||||
$row['name'] = __('Test');
|
||||
$row['control'] = html_print_button(__('Start'), 'test-integria', false, 'integria_connection_test("'.$integria_host.'",'.$integria_api_pass.')', 'class="sub next"', true);
|
||||
$row['control'] .= ' <span id="test-integria-spinner" class="invisible"> '.html_print_image('images/spinner.gif', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-success" class="invisible"> '.html_print_image('images/status_sets/default/severity_normal.png', true).'</span>';
|
||||
$row['control'] .= ' <span id="test-integria-failure" class="invisible"> '.html_print_image('images/status_sets/default/severity_critical.png', true).'</span>';
|
||||
$row['control'] .= '<span id="test-integria-message" class="invisible"></span>';
|
||||
$table_remote->data['integria_test'] = $row;
|
||||
|
||||
echo '<div class="integria_user_conf">';
|
||||
html_print_table($table_remote);
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
echo '<div class="edit_user_button">';
|
||||
if (!$config['user_can_update_info']) {
|
||||
|
@ -1278,4 +1324,75 @@ function ehorus_connection_test(host, port) {
|
|||
hideLoadingImage();
|
||||
});
|
||||
}
|
||||
|
||||
function integria_connection_test(api_hostname, api_pass) {
|
||||
var user = $('input#text-integria_user_level_user').val();
|
||||
var pass = $('input#password-integria_user_level_pass').val();
|
||||
|
||||
var badRequestMessage = '<?php echo __('Empty user or password'); ?>';
|
||||
var notFoundMessage = '<?php echo __('User not found'); ?>';
|
||||
var invalidPassMessage = '<?php echo __('Invalid password'); ?>';
|
||||
|
||||
var hideLoadingImage = function () {
|
||||
$('#test-integria-spinner').hide();
|
||||
}
|
||||
var showLoadingImage = function () {
|
||||
$('#test-integria-spinner').show();
|
||||
}
|
||||
var hideSuccessImage = function () {
|
||||
$('#test-integria-success').hide();
|
||||
}
|
||||
var showSuccessImage = function () {
|
||||
$('#test-integria-success').show();
|
||||
}
|
||||
var hideFailureImage = function () {
|
||||
$('#test-integria-failure').hide();
|
||||
}
|
||||
var showFailureImage = function () {
|
||||
$('#test-integria-failure').show();
|
||||
}
|
||||
var hideMessage = function () {
|
||||
$('#test-integria-message').hide();
|
||||
}
|
||||
var showMessage = function () {
|
||||
$('#test-integria-message').show();
|
||||
}
|
||||
var changeTestMessage = function (message) {
|
||||
$('#test-integria-message').text(message);
|
||||
}
|
||||
|
||||
hideSuccessImage();
|
||||
hideFailureImage();
|
||||
hideMessage();
|
||||
showLoadingImage();
|
||||
|
||||
$.ajax({
|
||||
url: "ajax.php",
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
page: 'godmode/setup/setup_integria',
|
||||
operation: 'check_api_access',
|
||||
integria_user: user,
|
||||
integria_pass: pass,
|
||||
api_hostname: api_hostname,
|
||||
api_pass: api_pass,
|
||||
}
|
||||
})
|
||||
.done(function(data, textStatus, xhr) {
|
||||
if (data.login == '1') {
|
||||
showSuccessImage();
|
||||
} else {
|
||||
showFailureImage();
|
||||
showMessage();
|
||||
}
|
||||
})
|
||||
.fail(function(xhr, textStatus, errorThrown) {
|
||||
showFailureImage();
|
||||
showMessage();
|
||||
})
|
||||
.always(function(xhr, textStatus) {
|
||||
hideLoadingImage();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1267,6 +1267,8 @@ CREATE TABLE IF NOT EXISTS `tusuario` (
|
|||
`ehorus_user_level_user` VARCHAR(60),
|
||||
`ehorus_user_level_pass` VARCHAR(45),
|
||||
`ehorus_user_level_enabled` TINYINT(1),
|
||||
`integria_user_level_user` VARCHAR(60),
|
||||
`integria_user_level_pass` VARCHAR(45),
|
||||
CONSTRAINT `fk_filter_id` FOREIGN KEY (`id_filter`) REFERENCES tevent_filter (`id_filter`) ON DELETE SET NULL,
|
||||
UNIQUE KEY `id_user` (`id_user`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
|
Loading…
Reference in New Issue