Fixed errors on eHorus user level conf

This commit is contained in:
Luis Calvo 2019-05-28 17:19:13 +02:00
parent 5966367f8f
commit 6fdd88ab65
4 changed files with 70 additions and 21 deletions

View File

@ -68,7 +68,7 @@ $table_remote->style['name'] = 'font-weight: bold';
// Enable eHorus user configuration.
$row = [];
$row['name'] = ('Enable eHorus user configuration');
$row['name'] = ('eHorus configuration at user level');
$row['control'] = html_print_checkbox_switch('ehorus_user_level_conf', 1, $config['ehorus_user_level_conf'], true);
$table_remote->data['ehorus_user_level_conf'] = $row;
@ -169,9 +169,19 @@ echo '</div>';
?>
<script type="text/javascript">
if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
$('#form_remote').hide();
if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked'))
{
$('#form_remote').hide();
}
if($('input:checkbox[name="ehorus_user_level_conf"]').is(':checked'))
{
$('#ehorus-remote-setup-ehorus_user').hide();
$('#ehorus-remote-setup-ehorus_pass').hide()
}
$('#form_enable').css('margin-bottom','20px');
var showFields = function () {
$('#form_remote').show();
@ -179,6 +189,17 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
var hideFields = function () {
$('#form_remote').hide();
}
var hideUserPass = function () {
$('#ehorus-remote-setup-ehorus_user').hide();
$('#ehorus-remote-setup-ehorus_pass').hide();
}
var showUserPass = function () {
$('#ehorus-remote-setup-ehorus_user').show();
$('#ehorus-remote-setup-ehorus_pass').show();
}
var handleEnable = function (event) {
var is_checked = $('input:checkbox[name="ehorus_enabled"]').is(':checked');
if (event.target.value == '1' && is_checked) {
@ -190,15 +211,32 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
$('input:checkbox[name="ehorus_enabled"]').attr('checked', false);
};
}
var handleUserLevel = function(event) {
var is_checked = $('input:checkbox[name="ehorus_enabled"]').is(':checked');
var is_checked_userlevel = $('input:checkbox[name="ehorus_user_level_conf"]').is(':checked');
if (event.target.value == '1' && is_checked && !is_checked_userlevel) {
showUserPass();
$('input:checkbox[name="ehorus_user_level_conf"]').attr('checked', true);
}
else {
hideUserPass();
$('input:checkbox[name="ehorus_user_level_conf"]').attr('checked', false);
};
}
$('input:checkbox[name="ehorus_enabled"]').change(handleEnable);
$('input:checkbox[name="ehorus_user_level_conf"]').change(handleUserLevel);
var handleTest = function (event) {
var user = $('input#text-ehorus_user').val();
var pass = $('input#password-ehorus_pass').val();
var host = $('input#text-ehorus_hostname').val();
var port = $('input#text-ehorus_port').val();
var timeout = Number.parseInt($('input#text-ehorus_req_timeout').val(), 10);
var is_checked_user_level = $('input:checkbox[name="ehorus_user_level_conf"]').is(':checked');
var timeoutMessage = '<?php echo __('Connection timeout'); ?>';
var badRequestMessage = '<?php echo __('Empty user or password'); ?>';
var notFoundMessage = '<?php echo __('User not found'); ?>';
@ -236,6 +274,7 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
hideFailureImage();
hideMessage();
showLoadingImage();
$.ajax({
url: 'https://' + host + ':' + port + '/login',
type: 'POST',
@ -250,9 +289,11 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
showSuccessImage();
})
.fail(function(xhr, textStatus, errorThrown) {
showFailureImage();
if (xhr.status === 400) {
if((xhr.status === 400 || xhr.status === 403) && is_checked_user_level)
{
showSuccessImage();
return;
}else if (xhr.status === 400) {
changeTestMessage(badRequestMessage);
}
else if (xhr.status === 401 || xhr.status === 403) {
@ -267,6 +308,8 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
else {
changeTestMessage(errorThrown);
}
showFailureImage();
showMessage();
})
.always(function(xhr, textStatus) {
@ -274,4 +317,7 @@ if(!$('input:checkbox[name="ehorus_enabled"]').is(':checked')){
});
}
$('input#button-test-ehorus').click(handleTest);
</script>

View File

@ -318,16 +318,11 @@ if ($update_user) {
$values['default_event_filter'] = (int) get_parameter('default_event_filter');
$values['default_custom_view'] = (int) get_parameter('default_custom_view');
// eHorus user level conf
if ($config['ehorus_user_level_conf']) {
$values['ehorus_user_level_enabled'] = (bool) get_parameter('ehorus_user_level_enabled', false);
if ($values['ehorus_user_level_enabled'] === true) {
$values['ehorus_user_level_user'] = (string) get_parameter('ehorus_user_level_user');
$values['ehorus_user_level_pass'] = (string) get_parameter('ehorus_user_level_pass');
} else {
$values['ehorus_user_level_user'] = null;
$values['ehorus_user_level_pass'] = null;
}
}
$values['ehorus_user_level_enabled'] = (bool) get_parameter('ehorus_user_level_enabled', false);
$values['ehorus_user_level_user'] = (string) get_parameter('ehorus_user_level_user');
$values['ehorus_user_level_pass'] = (string) get_parameter('ehorus_user_level_pass');
$dashboard = get_parameter('dashboard', '');
$visual_console = get_parameter('visual_console', '');
@ -875,7 +870,7 @@ $table->data[16][0] = __('Default event filter');
$table->data[16][1] = html_print_select($event_filter, 'default_event_filter', $user_info['default_event_filter'], '', '', __('None'), true, false, false);
if ($config['ehorus_user_level_conf']) {
$table->data[17][0] = __('Ehorus configuration at user level');
$table->data[17][0] = __('eHorus user acces enabled');
$table->data[17][1] = html_print_checkbox('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true);
$table->data[18][0] = __('eHorus user');
$table->data[19][0] = __('eHorus password');

View File

@ -1267,8 +1267,8 @@ if ($config['ehorus_enabled'] && !empty($config['ehorus_custom_field'])
) || is_user_admin($config['id_user']))
) {
$user_info = users_get_user_by_id($config['id_user']);
if ($config['ehorus_user_level_conf'] && !$user_info['ehorus_user_level_user'] && !$user_info['ehorus_user_level_pass']) {
// If ehorus user configuration is enabled, and no password provided, do nothing.
if ($config['ehorus_user_level_conf'] && !$user_info['ehorus_user_level_enabled'] && !is_user_admin($config['id_user'])) {
// If ehorus user configuration is enabled, and userr acces level is disabled do not show eHorus tab.
} else {
$ehorus_agent_id = agents_get_agent_custom_field($id_agente, $config['ehorus_custom_field']);
if (!empty($ehorus_agent_id)) {

View File

@ -125,6 +125,8 @@ if (isset($_GET['modified']) && !$view_mode) {
$upd_info['time_autorefresh'] = (int) get_parameter('time_autorefresh', 0);
$upd_info['ehorus_user_level_user'] = get_parameter('ehorus_user_level_user');
$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);
$is_admin = db_get_value('is_admin', 'tusuario', 'id_user', $id);
@ -661,6 +663,12 @@ if ($config['ehorus_enabled'] && $config['ehorus_user_level_conf']) {
$row['control'] = '<p class="edit_user_labels">'.__('eHorus user configuration').': </p>';
$table_remote->data['ehorus_user_level_conf'] = $row;
// Enable/disable eHorus for this user
$row = [];
$row['name'] = __('eHorus user acces enabled');
$row['control'] = html_print_checkbox_switch('ehorus_user_level_enabled', 1, $user_info['ehorus_user_level_enabled'], true)cd;
$table_remote->data['ehorus_user_level_enabled'] = $row;
// User.
$row = [];
$row['name'] = __('User');