FIX_Reset password Implemented

This commit is contained in:
venba-Inspriron-3558 2025-11-13 09:21:21 +05:30
parent 8b14b1a8bf
commit f7db3c4513
2 changed files with 90 additions and 28 deletions

View File

@ -472,18 +472,20 @@ class Users extends BaseController
$old_password =$this->request->getPost('old_password');
$new_password =$this->request->getPost('new_password');
$confirm_password =$this->request->getPost('confirm_password');
$type = $this->request->getPost('type') ?? 'change';
$UsersModel = new UsersModel();
$user = $UsersModel->where('user_id',$user_id)->first();
$data_old_password = $user['password'];
if ($type !== 'reset') {
$user = $UsersModel->where('user_id',$user_id)->first();
$data_old_password = $user['password'];
if (!password_verify($old_password, $data_old_password)) {
$response = array(
'status' => 'error',
'message' => 'Old Password Not Match...'
);
return json_encode($response);
}
if (!password_verify($old_password, $data_old_password)) {
return $this->response->setJSON([
'status' => 'error',
'message' => 'Old Password does not match.'
]);
}
}
if($new_password != $confirm_password){
$response = array(

View File

@ -81,12 +81,24 @@
<div class="row">
<div class="col-md-12">
<div class="form-group">
<h5 class="mb-3 text-uppercase bg-light p-2"><i class="mdi mdi-account-circle mr-1"></i> Change Password</h5>
<h5 class="mb-3 text-uppercase bg-light p-2"><i class="mdi mdi-lock-reset mr-1"></i>Change / Reset Password</h5>
<p class="text-muted mb-3">
<strong>Note:</strong> Enable the checkbox to <b>reset the password</b>. Disable it to <b>update the password</b> using existing one.
</p>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="col-md-12 mb-2">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="resetPasswordCheckbox" checked>
<label class="form-check-label" for="resetPasswordCheckbox">
Reset Password
</label>
</div>
</div>
<div class="col-md-6" id="old_password_div" style="display:none;">
<div class="form-group">
<label for="old_password">Old Password<span class="text-danger">*</span></label>
<div class="input-group">
@ -174,20 +186,59 @@
if (user_id != 0) {
$('#password').prop('required' ,false);
$('#password').parent().hide();
togglePasswordFields($('#resetPasswordCheckbox').is(':checked'));
}else{
$('.password_change').hide();
}
$('#resetPasswordCheckbox').on('change', function () {
togglePasswordFields($(this).is(':checked'));
});
// --- Toggle field visibility based on checkbox ---
function togglePasswordFields(isReset) {
if (isReset) {
// Reset password → old password hidden
$('#old_password_div').hide();
$('#old_password').val('').prop('required', false);
} else {
// Change password → old password visible
$('#old_password_div').show();
$('#old_password').val('').prop('required', true);
}
}
function togglePasswordFields(isReset) {
if (isReset) {
$('#old_password_div').hide();
$('#old_password').val('').prop('required', false);
} else {
$('#old_password_div').show();
$('#old_password').val('').prop('required', true);
}
}
function changePassword(params) {
var isReset = $('#resetPasswordCheckbox').is(':checked');
var formData = {};
var formData = {
old_password: $('#old_password').val(),
new_password: $('#new_password').val(),
confirm_password: $('#confirm_password').val()
};
if (isReset) {
formData = {
new_password: $('#new_password').val(),
confirm_password: $('#confirm_password').val(),
type: 'reset'
};
} else {
formData = {
old_password: $('#old_password').val(),
new_password: $('#new_password').val(),
confirm_password: $('#confirm_password').val(),
type: 'change'
};
}
$.ajax({
type: 'POST',
@ -207,11 +258,10 @@
// Handle error response here
console.error(xhr.responseText);
}
});
});
}
</script>
<script>
var oldPasswordField = document.getElementById("old_password");
var toggleOldPassword = document.getElementById("toggleOldPassword");
@ -250,24 +300,34 @@
var newPasswordField = document.getElementById('new_password');
var confirmPasswordField = document.getElementById('confirm_password');
var submitButton = document.getElementById('submit_password');
var resetCheckbox = $('#resetPasswordCheckbox');
// Function to validate the password fields
function validatePasswords() {
var isReset = resetCheckbox.is(':checked');
var oldPassword = oldPasswordField.value;
var newPassword = newPasswordField.value;
var confirmPassword = confirmPasswordField.value;
if(oldPassword !== newPassword && newPassword !== ''){
console.log(oldPassword);
console.log(oldPassword);
console.log(newPassword);
console.log(confirmPassword);
if (newPassword === confirmPassword) {
submitButton.disabled = false;
if (isReset) {
if (newPassword && confirmPassword && newPassword === confirmPassword) {
submitButton.prop('disabled', false);
} else {
submitButton.disabled = true;
submitButton.prop('disabled', true);
}
} else {
// Change flow → all required
if (oldPassword && newPassword && confirmPassword &&
newPassword === confirmPassword && oldPassword !== newPassword) {
submitButton.prop('disabled', false);
} else {
submitButton.prop('disabled', true);
}
}else{
submitButton.disabled = true;
}
}
@ -277,4 +337,4 @@
newPasswordField.addEventListener('input', validatePasswords);
confirmPasswordField.addEventListener('input', validatePasswords);
});
</script>
</script>