Forgot password Changes : ps

This commit is contained in:
VE10-Sanjeev 2024-03-26 12:58:07 +05:30
parent 76242628f1
commit 43d27d1654
4 changed files with 72 additions and 28 deletions

View File

@ -35,7 +35,7 @@ $routes->get('/', 'Authentication::index');
$routes->get('login/', 'Authentication::index');
$routes->post('authenticate/', 'Authentication::authenticate');//Routes For Authentication.
$routes->get('logout/', 'Authentication::logout');
$routes->get('auth_confirm_mail/', 'Authentication::auth_confirm_mail');//Routes For Confirmation Mail alert page.
$routes->post('auth_confirm_mail/', 'Authentication::auth_confirm_mail');//Routes For Confirmation Mail alert page.
$routes->get('auth_reset_password/', 'Authentication::auth_reset_password');//Routes For Load Reset password Page.
$routes->post('auth_reset_password_save/', 'Authentication::auth_reset_password_save');//Routes For update the Resetted password.
$routes->get('lockscreen/', 'Authentication::lockscreen');

View File

@ -83,18 +83,22 @@ class Authentication extends BaseController
## Load Forgot password Confirmation Alert
public function auth_confirm_mail()
{
// Get the email address from the request
$mail_id = $this->request->getGet('email');
$mail_id = $this->request->getPost('email');
$url_domain = base_url();
$this->logger->info("auth confirm mail : Mail = ".$mail_id);
$this->logger->info("auth confirm mail : Domain = ".$url_domain);
// Validate the email address
$validation_rules = [
'email' => 'required|valid_email',
];
if (!$this->validate($validation_rules)) {
$this->logger->error('enter correct mail to reset your Password');
return redirect()->back()->withInput()->with('error', 'Enter correct E-mail to reset your password');
$response['status'] = false;
$response['message'] = 'Enter correct E-mail to reset your password';
$this->logger->error($response['message']);
return $this->response->setJSON(['data' => $response]);
}
// Check if the email exists in the database
@ -102,22 +106,26 @@ class Authentication extends BaseController
// $user = $auth_model->where('email', $mail_id)->first();
$where = ['email' => $mail_id, 'isactive' => 1];
$user = $auth_model->where($where)->first();
if (!$user) {
$this->logger->error('There is no user enteries against given mail');
return redirect()->back()->withInput()->with('error', 'There is no user enteries against given mail');
$response['status'] = false;
$response['message'] = 'There is no user enteries against given mail';
$this->logger->error($response['message']);
return $this->response->setJSON(['data' => $response]);
} else {
$this->logger->info("auth confirm mail : count = ".count($user));
$data['mail_id'] = $mail_id;
// Generate a unique token for password reset
$token = bin2hex(random_bytes(32));
$content = "Click the link below to reset your password : " . $url_domain . "auth_reset_password?email=" . $mail_id . "&token=" . $token;
$this->logger->info("auth confirm mail : content = ".$content);
$email = \Config\Services::email();
// $recipient = 'venbalap08@gmail.com';
$recipient = $mail_id;
// Compose the email
$email->setTo($recipient);
$email->setFrom('no-reply@tripapprovaltool.com', 'BB-VBP');
$email->setFrom('no-reply@tripapprovaltool.com', 'BB-Donor');
$email->setSubject('Email Notification');
// $email->setMessage('This is a notification email from CodeIgniter.');
$email->setMessage($content);
@ -125,22 +133,20 @@ class Authentication extends BaseController
$update_token['reset_link'] = $token;
$auth_model->update($user['user_id'], $update_token);
$data['link'] = $url_domain . "auth_reset_password?email=" . $mail_id . "&token=" . $token;
// Retrieve flashed session data
$successMessage = session()->getFlashdata('success');
$validationErrors = session()->getFlashdata('error');
// Load and display the form view with the above data
// Here, we'll use the default View class for demonstration purposes
$data['successMessage'] = $successMessage;
$data['validationErrors'] = $validationErrors;
// return view('auth_confirm_mail', $data);
if ($email->send()) {
// Email sent successfully
return view('auth_confirm_mail', $data);
$this->logger->info("auth confirm mail = Email sent successfully");
$response['status'] = true;
$response['message'] = "Password Reset Link Shared on Your Email";
$this->logger->error($response['message']);
return $this->response->setJSON(['data' => $response]);
} else {
$this->logger->error('Email Not Sended,Try Again');
return redirect()->back()->withInput()->with('error', 'Email Not Sended,Try Again');
$response['status'] = false;
$response['message'] = 'There is no user enteries against given mail';
$this->logger->error($response['message']);
// return redirect()->back()->withInput()->with('error', 'Email Not Sended,Try Again');
}
return $this->response->setJSON(['data' => $response]);
}
}

View File

@ -66,8 +66,13 @@ abstract class BaseController extends Controller
// echo $requestedRoute;
} else {
if ($requestedRoute !== '/login' && $requestedRoute !== '/authenticate' && $uri->getSegment(1) != 'getExpCustomerDetail'&& $uri->getSegment(1) != 'download_invoice_pdf') {
$this->authData = $this->session_log();
if ($uri->getSegment(1) != 'getExpCustomerDetail'&& $uri->getSegment(1) != 'download_invoice_pdf') {
$this->authData = $this->session_log();
}
$routesArr = ['login', 'authenticate', 'auth_confirm_mail', 'auth_reset_password', 'auth_reset_password_save'];
if (!in_array($requestedRoute, $routesArr)) {
$this->authData = $this->session_log();
}
}

View File

@ -120,11 +120,44 @@
<script src="<?= base_url() . "public/assets/js/app.min.js" ?>"></script>
<script>
// $(document).ready(function() {
// // Fetch email value and set it as href for the reset link
// $('#emailaddress').on('input', function() {
// var emailValue = $(this).val();
// $('#resetLink').attr('href', 'auth_confirm_mail?email='+emailValue);
// });
// });
$(document).ready(function() {
// Fetch email value and set it as href for the reset link
$('#emailaddress').on('input', function() {
var emailValue = $(this).val();
$('#resetLink').attr('href', 'auth_confirm_mail?email='+emailValue);
$('#resetLink').on('click', function(event) {
var emailValue = $('#emailaddress').val();
var baseUrl = "<?php echo base_url(); ?>";
if (!emailValue) {
event.preventDefault();
console.log('Please enter your email before clicking on "Forgot your password?"');
alert('Please enter your email before clicking on "Forgot your password?"');
} else {
$.ajax({
type: "POST",
url: "<?= base_url() . 'auth_confirm_mail' ?>",
data: { email: emailValue },
success: function(response) {
console.log(response);
if (response['data']['status']) {
alert(response['data']['message']);
$('#emailaddress').val('');
console.log("Email confirmation successful");
} else {
alert(response['data']['message']);
console.log(response['data']['message']);
}
},
error: function(error) {
console.log('AJAX Error:', error.responseText);
// Handle error here, if needed
}
});
}
});
});
</script>