This commit is contained in:
HB9HIL
2024-01-04 14:34:40 +01:00
parent 9de62adb5c
commit 3ca023265d
3 changed files with 50 additions and 31 deletions

View File

@@ -805,13 +805,16 @@ class User extends CI_Controller {
}
}
// Send an E-Mail to the user. Function is similar to forgot_password()
public function admin_send_passwort_reset() {
// Send an E-Mail to the user. Function is similar to forgot_password() but will be called by an AJAX
public function admin_send_password_reset() {
header('Content-Type: application/json');
if ($this->input->is_ajax_request()) { // just additional, to make sure request is from ajax
if ($this->input->post('submit_allowed')) {
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$query = $this->user_model->get_by_id($this->input->post('user_id'));
@@ -872,18 +875,12 @@ class User extends CI_Controller {
if (! $this->email->send())
{
// Redirect to user page with message
$this->session->set_flashdata('danger', lang('admin_email_settings_incorrect'));
redirect('user');
echo json_encode(false);
} else {
// Redirect to user page with message
$this->session->set_flashdata('success', lang('admin_password_reset_processed') . " " . $data->user_name . " (" . $data->user_email . ")");
redirect('user');
echo json_encode(true);
}
} else {
// No account found just return to user page
$this->session->set_flashdata('danger', 'Nothing done. No user found.');
redirect('user');
echo json_encode(false);
}
}
}

View File

@@ -2,6 +2,9 @@
var lang_admin_confirm_pwd_reset = "<?php echo lang('admin_confirm_pwd_reset'); ?>";
var lang_admin_user = "<?php echo lang('admin_user'); ?>";
var lang_gen_hamradio_callsign = "<?php echo lang('gen_hamradio_callsign'); ?>";
var lang_admin_email_settings_incorrect = "<?php echo lang('admin_email_settings_incorrect'); ?>";
var lang_admin_password_reset_processed = "<?php echo lang('admin_password_reset_processed'); ?>";
</script>
<div class="container">
@@ -16,22 +19,9 @@
</div>
<?php } ?>
<?php if ($this->session->flashdata('success')) { ?>
<!-- Display Message -->
<div class="alert alert-success" role="alert">
<?php echo $this->session->flashdata('success'); ?>
</div>
<?php } ?>
<?php if ($this->session->flashdata('danger')) { ?>
<!-- Display Message -->
<div class="alert alert-danger" role="alert">
<?php echo $this->session->flashdata('danger'); ?>
</div>
<?php } ?>
<!-- This Info will be shown by the admin password reset -->
<div class="alert" id="pwd_reset_message" style="display: hide" role="alert"></div>
<div class="card">
<div class="card-header">
@@ -81,7 +71,7 @@
<td style="text-align: center; vertical-align: middle;">
<?php
if ($_SESSION['user_id'] != $row->user_id) {
echo '<a class="btn btn-primary btn-sm ms-1 admin_pwd_reset" data-username="' . $row->user_name . '" data-callsign="' . $row->user_callsign . '" data-userid="' . $row->user_id . '"><i class="fas fa-key"></i></a>';
echo '<a class="btn btn-primary btn-sm ms-1 admin_pwd_reset" data-username="' . $row->user_name . '" data-callsign="' . $row->user_callsign . '" data-userid="' . $row->user_id . '" data-usermail="' . $row->user_email . '"><i class="fas fa-key"></i></a>';
}
?></td>
<td style="text-align: center; vertical-align: middle;">

View File

@@ -39,16 +39,27 @@ $(document).ready(function(){
var pwd_reset_user_name = $(this).data('username');
var pwd_reset_user_callsign = $(this).data('callsign');
var pwd_reset_user_id = $(this).data('userid');
var pwd_reset_user_email = $(this).data('usermail');
BootstrapDialog.confirm({
title: lang_general_word_warning,
message: lang_admin_confirm_pwd_reset + "\n\n" + lang_admin_user + ": " + pwd_reset_user_name + "\n" + lang_gen_hamradio_callsign + ": " + pwd_reset_user_callsign,
message:
lang_admin_confirm_pwd_reset + "\n\n" +
lang_admin_user + ": " + pwd_reset_user_name + "\n" +
lang_gen_hamradio_callsign + ": " + pwd_reset_user_callsign,
type: BootstrapDialog.TYPE_DANGER,
btnCancelLabel: lang_general_word_cancel,
btnOKLabel: lang_general_word_ok,
btnOKClass: "btn-warning",
closable: false, // Setzt closable auf false, um das Schließen während des Ajax-Aufrufs zu verhindern
callback: function (result) {
if (result) {
var wait_dialog = BootstrapDialog.show({
title: 'Bitte warten',
message: '<div class="text-center"><i class="fas fa-spinner fa-spin fa-3x"></i></div>',
closable: false,
buttons: []
});
$.ajax({
url: base_url + 'index.php/user/admin_send_password_reset',
type: 'POST',
@@ -56,9 +67,30 @@ $(document).ready(function(){
user_id: pwd_reset_user_id,
submit_allowed: true
},
success: function(result) {
wait_dialog.close();
if (result) {
$('#pwd_reset_message').addClass('alert-success');
$('#pwd_reset_message').text(lang_admin_password_reset_processed + " " + pwd_reset_user_name + " (" + pwd_reset_user_email + ")");
$('#pwd_reset_message').show();
} else {
$('#pwd_reset_message').addClass('alert-danger');
$('#pwd_reset_message').text(lang_admin_email_settings_incorrect);
$('#pwd_reset_message').show();
}
},
error: function() {
wait_dialog.close();
$('#pwd_reset_message').addClass('alert-danger');
$('#pwd_reset_message').text('Error! Description: admin_send_password_reset failed');
$('#pwd_reset_message').show();
}
});
}
},
});
}).getModalHeader().find('.modal-title').after('<i class="fas fa-spinner fa-spin fa-2x"></i>');
});
});