mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-29 16:55:05 +02:00
Merge branch 'ent-12219-error-al-eliminar-perfiles-en-edicion-de-usuario' into 'develop'
Ent 12219 error al eliminar perfiles en edicion de usuario See merge request artica/pandorafms!6555
This commit is contained in:
commit
2fa8ed3c9e
@ -27,17 +27,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
if (true) {
|
if ((bool) $config['metaconsole']) {
|
||||||
include_once '../include/config.php';
|
|
||||||
include_once '../include/functions_agents.php';
|
|
||||||
include_once '../include/functions_reporting.php';
|
|
||||||
include_once '../include/functions_modules.php';
|
|
||||||
include_once '../include/functions_users.php';
|
|
||||||
include_once $config['homedir'].'/include/config.php';
|
include_once $config['homedir'].'/include/config.php';
|
||||||
include_once $config['homedir'].'/include/functions_agents.php';
|
include_once $config['homedir'].'/include/functions_agents.php';
|
||||||
include_once $config['homedir'].'/include/functions_reporting.php';
|
include_once $config['homedir'].'/include/functions_reporting.php';
|
||||||
include_once $config['homedir'].'/include/functions_modules.php';
|
include_once $config['homedir'].'/include/functions_modules.php';
|
||||||
include_once $config['homedir'].'/include/functions_users.php';
|
include_once $config['homedir'].'/include/functions_users.php';
|
||||||
|
} else {
|
||||||
|
include_once '../include/config.php';
|
||||||
|
include_once '../include/functions_agents.php';
|
||||||
|
include_once '../include/functions_reporting.php';
|
||||||
|
include_once '../include/functions_modules.php';
|
||||||
|
include_once '../include/functions_users.php';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,14 +155,92 @@ if (is_ajax() === true) {
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($delete_profile === true) {
|
||||||
|
// Get parameters.
|
||||||
|
$result = false;
|
||||||
|
$id_user = (string) get_parameter('id_user');
|
||||||
|
$id_up = (int) get_parameter('id_user_profile');
|
||||||
|
$delete_user = (bool) get_parameter('delete_user', false);
|
||||||
|
$user_is_global_admin = users_is_admin($id_user);
|
||||||
|
|
||||||
|
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
||||||
|
$id_perfil = $perfilUser['id_perfil'];
|
||||||
|
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_MANAGEMENT,
|
||||||
|
'Deleted profile for user '.io_safe_output($id_user),
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
||||||
|
);
|
||||||
|
// Delete profile.
|
||||||
|
$profile_deleted = profile_delete_user_profile($id_user, $id_up);
|
||||||
|
// Check if exists more profiles.
|
||||||
|
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id_user);
|
||||||
|
if ($profile_deleted === true) {
|
||||||
|
if ($has_profile === false && $user_is_global_admin === false && $delete_user === true) {
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$servers = metaconsole_get_servers();
|
||||||
|
foreach ($servers as $server) {
|
||||||
|
// Connect to the remote console.
|
||||||
|
metaconsole_connect($server);
|
||||||
|
|
||||||
|
// Delete the user.
|
||||||
|
$result = delete_user($id_user);
|
||||||
|
if ($result === true) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_MANAGEMENT,
|
||||||
|
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore the db connection.
|
||||||
|
metaconsole_restore_db();
|
||||||
|
|
||||||
|
// Log to the metaconsole too.
|
||||||
|
if ($result === true) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_MANAGEMENT,
|
||||||
|
__(
|
||||||
|
'Deleted user %s from %s',
|
||||||
|
io_safe_input($id_user),
|
||||||
|
io_safe_input($server['server_name'])
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = delete_user((string) $id_user);
|
||||||
|
|
||||||
|
if ($result === true) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_MANAGEMENT,
|
||||||
|
__('Deleted user %s', io_safe_output($id_user))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result = delete_user((string) $id_user);
|
||||||
|
if ($result === true) {
|
||||||
|
db_pandora_audit(
|
||||||
|
AUDIT_LOG_USER_MANAGEMENT,
|
||||||
|
__('Deleted user %s', io_safe_output($id_user))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$result = $profile_deleted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$tab = get_parameter('tab', 'user');
|
$tab = get_parameter('tab', 'user');
|
||||||
|
|
||||||
// Save autorefresh list.
|
// Save autorefresh list.
|
||||||
$autorefresh_list = (array) get_parameter_post('autorefresh_list');
|
$autorefresh_list = (array) get_parameter_post('autorefresh_list');
|
||||||
$autorefresh_white_list = (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) ? '' : json_encode($autorefresh_list);
|
$autorefresh_white_list = (($autorefresh_list[0] === '') || ($autorefresh_list[0] === '0')) ? '' : json_encode($autorefresh_list);
|
||||||
|
|
||||||
// Header.
|
// Header.
|
||||||
if (is_metaconsole() === true) {
|
if (is_metaconsole() === true) {
|
||||||
user_meta_print_header();
|
user_meta_print_header();
|
||||||
@ -195,11 +273,11 @@ if (is_metaconsole() === true) {
|
|||||||
).'</a>',
|
).'</a>',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
$buttons[$tab]['active'] = true;
|
$buttons[$tab]['active'] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$edit_user = get_parameter('edit_user');
|
$edit_user = get_parameter('edit_user');
|
||||||
|
|
||||||
ui_print_standard_header(
|
ui_print_standard_header(
|
||||||
($edit_user) ? sprintf('%s [ %s ]', __('Update User'), $id) : __('Create User'),
|
($edit_user) ? sprintf('%s [ %s ]', __('Update User'), $id) : __('Create User'),
|
||||||
'images/gm_users.png',
|
'images/gm_users.png',
|
||||||
@ -222,11 +300,9 @@ if (is_metaconsole() === true) {
|
|||||||
],
|
],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$sec = 'gusuarios';
|
$sec = 'gusuarios';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((bool) $config['user_can_update_info'] === true) {
|
if ((bool) $config['user_can_update_info'] === true) {
|
||||||
$view_mode = false;
|
$view_mode = false;
|
||||||
} else {
|
} else {
|
||||||
@ -866,89 +942,6 @@ if ($update_user) {
|
|||||||
$user_info = $values;
|
$user_info = $values;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($delete_profile) {
|
|
||||||
$id2 = (string) get_parameter('id_user');
|
|
||||||
$id_up = (int) get_parameter('id_user_profile');
|
|
||||||
$perfilUser = db_get_row('tusuario_perfil', 'id_up', $id_up);
|
|
||||||
$id_perfil = $perfilUser['id_perfil'];
|
|
||||||
$perfil = db_get_row('tperfil', 'id_perfil', $id_perfil);
|
|
||||||
|
|
||||||
db_pandora_audit(
|
|
||||||
AUDIT_LOG_USER_MANAGEMENT,
|
|
||||||
'Deleted profile for user '.io_safe_output($id2),
|
|
||||||
false,
|
|
||||||
false,
|
|
||||||
'The profile with id '.$id_perfil.' in the group '.$perfilUser['id_grupo']
|
|
||||||
);
|
|
||||||
|
|
||||||
$return = profile_delete_user_profile($id2, $id_up);
|
|
||||||
ui_print_result_message(
|
|
||||||
$return,
|
|
||||||
__('Successfully deleted'),
|
|
||||||
__('Could not be deleted')
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
$has_profile = db_get_row('tusuario_perfil', 'id_usuario', $id2);
|
|
||||||
$user_is_global_admin = users_is_admin($id2);
|
|
||||||
|
|
||||||
if ($has_profile === false && $user_is_global_admin === false) {
|
|
||||||
$result = delete_user($id2);
|
|
||||||
|
|
||||||
if ($result === true) {
|
|
||||||
db_pandora_audit(
|
|
||||||
AUDIT_LOG_USER_MANAGEMENT,
|
|
||||||
__('Deleted user %s', io_safe_output($id_user))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_print_result_message(
|
|
||||||
$result,
|
|
||||||
__('Successfully deleted'),
|
|
||||||
__('There was a problem deleting the user')
|
|
||||||
);
|
|
||||||
|
|
||||||
// Delete the user in all the consoles.
|
|
||||||
if (is_metaconsole() === true) {
|
|
||||||
$servers = metaconsole_get_servers();
|
|
||||||
foreach ($servers as $server) {
|
|
||||||
// Connect to the remote console.
|
|
||||||
metaconsole_connect($server);
|
|
||||||
|
|
||||||
// Delete the user.
|
|
||||||
$result = delete_user($id_user);
|
|
||||||
if ($result === true) {
|
|
||||||
db_pandora_audit(
|
|
||||||
AUDIT_LOG_USER_MANAGEMENT,
|
|
||||||
__('Deleted user %s from metaconsole', io_safe_output($id_user))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Restore the db connection.
|
|
||||||
metaconsole_restore_db();
|
|
||||||
|
|
||||||
// Log to the metaconsole too.
|
|
||||||
if ($result === true) {
|
|
||||||
db_pandora_audit(
|
|
||||||
AUDIT_LOG_USER_MANAGEMENT,
|
|
||||||
__(
|
|
||||||
'Deleted user %s from %s',
|
|
||||||
io_safe_input($id_user),
|
|
||||||
io_safe_input($server['server_name'])
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ui_print_result_message(
|
|
||||||
$result,
|
|
||||||
__('Successfully deleted from %s', io_safe_input($server['server_name'])),
|
|
||||||
__('There was a problem deleting the user from %s', io_safe_input($server['server_name']))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((int) $status !== -1) {
|
if ((int) $status !== -1) {
|
||||||
ui_print_result_message(
|
ui_print_result_message(
|
||||||
$status,
|
$status,
|
||||||
@ -1159,6 +1152,13 @@ if (is_user_admin($id) === true) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
html_print_div(
|
||||||
|
[
|
||||||
|
'id' => 'delete_profile_modal',
|
||||||
|
'content' => '',
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
$full_name = ' <div class="label_select_simple">'.html_print_input_text_extended(
|
$full_name = ' <div class="label_select_simple">'.html_print_input_text_extended(
|
||||||
'fullname',
|
'fullname',
|
||||||
$user_info['fullname'],
|
$user_info['fullname'],
|
||||||
@ -1931,24 +1931,87 @@ if (is_metaconsole() === false) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('input:image[name="del"]').click(function(e) {
|
$('input:image[name="del"]').click(function(e) {
|
||||||
if ($(json_profile).length > 0) return;
|
|
||||||
if (!confirm('Are you sure?')) return;
|
|
||||||
e.preventDefault();
|
|
||||||
var rows = $("#table_profiles tr").length;
|
|
||||||
if (((is_metaconsole === '1' && rows <= 4) || (is_metaconsole === '' && rows <= 3)) && user_is_global_admin !== '1') {
|
|
||||||
if (!confirm('<?php echo __('Deleting last profile will delete this user'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
var rows = $("#table_profiles tr").length;
|
||||||
|
let deleteuser = 0;
|
||||||
|
e.preventDefault();
|
||||||
var id_user_profile = $(this).siblings();
|
var id_user_profile = $(this).siblings();
|
||||||
id_user_profile = id_user_profile[1].value;
|
id_user_profile = id_user_profile[1].value;
|
||||||
var row = $(this).closest('tr');
|
var row = $(this).closest('tr');
|
||||||
|
|
||||||
|
if (((is_metaconsole === '1' && rows <= 3) || (is_metaconsole !== '1' && rows <= 3)) && user_is_global_admin !== '1') {
|
||||||
|
$("#delete_profile_modal")
|
||||||
|
.empty()
|
||||||
|
.html("<?php echo __('Deleting this profile will leave your user without a profile or group. You can continue by deleting the user or preserving it.'); ?>");
|
||||||
|
// Set the title.
|
||||||
|
$("#delete_profile_modal").prop("title", "<?php echo __('Are you sure?'); ?>");
|
||||||
|
// Build the dialog for show the mesage.
|
||||||
|
$("#delete_profile_modal").dialog({
|
||||||
|
resizable: true,
|
||||||
|
draggable: true,
|
||||||
|
modal: true,
|
||||||
|
width: 500,
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
text: "Cancel",
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog("close");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Delete",
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog("close");
|
||||||
|
deleteuser = 1;
|
||||||
|
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Preserve",
|
||||||
|
click: function() {
|
||||||
|
$(this).dialog("close");
|
||||||
|
deleteuser = 0;
|
||||||
|
delete_user_profile(id_user_profile, row, id_user, deleteuser)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
overlay: {
|
||||||
|
opacity: 0.5,
|
||||||
|
background: "black"
|
||||||
|
},
|
||||||
|
closeOnEscape: false,
|
||||||
|
open: function(event, ui) {
|
||||||
|
$(".ui-dialog-titlebar-close").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (((is_metaconsole === '1' && rows <= 3) || (is_metaconsole === '' && rows <= 3)) && user_is_global_admin !== '1') {
|
||||||
|
if (!confirm('<?php echo __('Deleting last profile will delete this user'); ?>' + '. ' + '<?php echo __('Are you sure?'); ?>')) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!confirm('Are you sure?')) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
delete_user_profile(id_user_profile, row, id_user, deleteuser);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($(json_profile).length > 0) return;
|
||||||
|
});
|
||||||
|
|
||||||
|
function delete_user_profile(id_user_profile, row, id_user, deleteuser){
|
||||||
var params = [];
|
var params = [];
|
||||||
params.push("delete_profile=1");
|
params.push("delete_profile=1");
|
||||||
|
params.push("edit_user=1");
|
||||||
|
params.push("delete_user=" + deleteuser);
|
||||||
params.push("id_user=" + id_user);
|
params.push("id_user=" + id_user);
|
||||||
params.push("id_user_profile=" + id_user_profile);
|
params.push("id_user_profile=" + id_user_profile);
|
||||||
params.push("page=godmode/users/configure_user");
|
params.push("page=godmode/users/configure_user");
|
||||||
@ -1959,15 +2022,14 @@ if (is_metaconsole() === false) {
|
|||||||
success: function(data) {
|
success: function(data) {
|
||||||
row.remove();
|
row.remove();
|
||||||
var rows = $("#table_profiles tr").length;
|
var rows = $("#table_profiles tr").length;
|
||||||
|
if (is_metaconsole === '' && rows <= 2 && user_is_global_admin !== '1' && deleteuser == '1') {
|
||||||
if (is_metaconsole === '' && rows <= 2 && user_is_global_admin !== '1') {
|
|
||||||
window.location.replace("<?php echo ui_get_full_url('index.php?sec=gusuarios&sec2=godmode/users/user_list&tab=user&pure=0', false, false, false); ?>");
|
window.location.replace("<?php echo ui_get_full_url('index.php?sec=gusuarios&sec2=godmode/users/user_list&tab=user&pure=0', false, false, false); ?>");
|
||||||
} else if (is_metaconsole === '1' && rows <= 3 && user_is_global_admin !== '1') {
|
} else if (is_metaconsole === '1' && rows <= 2 && user_is_global_admin !== '1' && deleteuser == '1') {
|
||||||
window.location.replace("<?php echo ui_get_full_url('index.php?sec=advanced&sec2=advanced/users_setup', false, false, true); ?>");
|
window.location.replace("<?php echo ui_get_full_url('index.php?sec=advanced&sec2=advanced/users_setup', false, false, true); ?>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
function checkProfiles(e) {
|
function checkProfiles(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -308,7 +308,7 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||||||
'del',
|
'del',
|
||||||
'images/delete.svg',
|
'images/delete.svg',
|
||||||
1,
|
1,
|
||||||
'',
|
'background-color: transparent !important;',
|
||||||
true,
|
true,
|
||||||
[
|
[
|
||||||
'onclick' => 'delete_profile(event, this)',
|
'onclick' => 'delete_profile(event, this)',
|
||||||
@ -316,8 +316,15 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$data['actions'] = '<form method="post" onsubmit="if (!confirm (\''.__('Are you sure?').'\')) return false">';
|
$data['actions'] = '<form method="post" onsubmit="">';
|
||||||
$data['actions'] .= html_print_input_image('del', 'images/delete.svg', 1, '', true, ['class' => 'main_menu_icon invert_filter']);
|
$data['actions'] .= html_print_input_image(
|
||||||
|
'del',
|
||||||
|
'images/delete.svg',
|
||||||
|
1,
|
||||||
|
'background-color: transparent !important;',
|
||||||
|
true,
|
||||||
|
['class' => 'main_menu_icon invert_filter']
|
||||||
|
);
|
||||||
$data['actions'] .= html_print_input_hidden('delete_profile', 1, true);
|
$data['actions'] .= html_print_input_hidden('delete_profile', 1, true);
|
||||||
$data['actions'] .= html_print_input_hidden('id_user_profile', $profile['id_up'], true);
|
$data['actions'] .= html_print_input_hidden('id_user_profile', $profile['id_up'], true);
|
||||||
$data['actions'] .= html_print_input_hidden('id_user', $id, true);
|
$data['actions'] .= html_print_input_hidden('id_user', $id, true);
|
||||||
@ -391,7 +398,14 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||||||
|
|
||||||
$data['last_hierarchy'] = html_print_checkbox('no_hierarchy', 1, false, true);
|
$data['last_hierarchy'] = html_print_checkbox('no_hierarchy', 1, false, true);
|
||||||
|
|
||||||
$data['last_actions'] = html_print_input_image('add', 'images/validate.svg', 1, '', true, ['class' => 'main_menu_icon invert_filter']);
|
$data['last_actions'] = html_print_input_image(
|
||||||
|
'add',
|
||||||
|
'images/validate.svg',
|
||||||
|
1,
|
||||||
|
'background-color: transparent !important;',
|
||||||
|
true,
|
||||||
|
['class' => 'main_menu_icon invert_filter']
|
||||||
|
);
|
||||||
$data['last_actions'] .= html_print_input_hidden('id', $id, true);
|
$data['last_actions'] .= html_print_input_hidden('id', $id, true);
|
||||||
$data['last_actions'] .= html_print_input_hidden('add_profile', 1, true);
|
$data['last_actions'] .= html_print_input_hidden('add_profile', 1, true);
|
||||||
$data['last_actions'] .= '</form>';
|
$data['last_actions'] .= '</form>';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user