FEAT_PASSWORD_LOGIN_API
This commit is contained in:
parent
6a6087034c
commit
1b3270aae0
@ -506,6 +506,7 @@ $routes->post("/employeeRest/getVerifiedUserData", "RestAuthenticationController
|
|||||||
$routes->post("/employeeRest/verifyEmployeeEmailId", "RestAuthenticationController::verifyEmployeeWithEmailId");
|
$routes->post("/employeeRest/verifyEmployeeEmailId", "RestAuthenticationController::verifyEmployeeWithEmailId");
|
||||||
$routes->post("/employeeRest/updateEmpOTP", "RestAuthenticationController::updateEmpOTP");
|
$routes->post("/employeeRest/updateEmpOTP", "RestAuthenticationController::updateEmpOTP");
|
||||||
|
|
||||||
|
// MPIN api's
|
||||||
$routes->post("employeeRest/saveMpin", "RestAuthenticationController::saveMpin");
|
$routes->post("employeeRest/saveMpin", "RestAuthenticationController::saveMpin");
|
||||||
$routes->post("employeeRest/updateMpin", "RestAuthenticationController::updateMpin");
|
$routes->post("employeeRest/updateMpin", "RestAuthenticationController::updateMpin");
|
||||||
$routes->post("/employeeRest/verifyMpin", "RestAuthenticationController::verifyMpin");
|
$routes->post("/employeeRest/verifyMpin", "RestAuthenticationController::verifyMpin");
|
||||||
@ -513,8 +514,12 @@ $routes->post("/employeeRest/checkMpin", "RestAuthenticationController::checkMpi
|
|||||||
$routes->post("/employeeRest/updateEmpMPIN", "RestAuthenticationController::updateEmpMPIN");
|
$routes->post("/employeeRest/updateEmpMPIN", "RestAuthenticationController::updateEmpMPIN");
|
||||||
$routes->post("employeeRest/forgotMPIN", "RestAuthenticationController::forgotMPIN");
|
$routes->post("employeeRest/forgotMPIN", "RestAuthenticationController::forgotMPIN");
|
||||||
$routes->post("employeeRest/updateMobileNumber", "RestAuthenticationController::updateMobileNumber");
|
$routes->post("employeeRest/updateMobileNumber", "RestAuthenticationController::updateMobileNumber");
|
||||||
// $routes->post("/employeeRest/saveMpin", "RestAuthenticationController::saveMpin");
|
|
||||||
|
|
||||||
|
// PASSWORD api's
|
||||||
|
$routes->post("employeeRest/savePassword", "RestAuthenticationController::savePassword");
|
||||||
|
$routes->post("employeeRest/changePassword", "RestAuthenticationController::changePassword");
|
||||||
|
$routes->post("employeeRest/verifyPassword", "RestAuthenticationController::verifyPassword");
|
||||||
|
$routes->post("employeeRest/verifyOtp", "RestAuthenticationController::verifyOtp");
|
||||||
|
|
||||||
//HR login api's
|
//HR login api's
|
||||||
$routes->post("/employeeRest/verifyHrWithMobileNumber", "RestAuthenticationController::verifyHrWithMobileNumber");
|
$routes->post("/employeeRest/verifyHrWithMobileNumber", "RestAuthenticationController::verifyHrWithMobileNumber");
|
||||||
|
|||||||
@ -1515,9 +1515,14 @@ class RestAuthenticationController extends AdminController
|
|||||||
$email_id = $payload->email_id ?? null;
|
$email_id = $payload->email_id ?? null;
|
||||||
$client_id = $payload->client_id ?? null;
|
$client_id = $payload->client_id ?? null;
|
||||||
$plain_password = $payload->password ?? null;
|
$plain_password = $payload->password ?? null;
|
||||||
|
$confirm_password = $payload->confirm_password ?? null;
|
||||||
|
|
||||||
if (empty($plain_password)) {
|
if (empty($plain_password) || empty($confirm_password)) {
|
||||||
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'Password cannot be empty'], 400);
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'Both password cannot be empty'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($plain_password !== $confirm_password){
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'Password and confirm password not matched'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build employee query
|
// Build employee query
|
||||||
@ -1555,6 +1560,7 @@ class RestAuthenticationController extends AdminController
|
|||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: Last Executed Query: " . $lastQuery);
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: Last Executed Query: " . $lastQuery);
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: employeeData: " . json_encode($employeeData ?? []));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: employeeData: " . json_encode($employeeData ?? []));
|
||||||
|
|
||||||
|
|
||||||
if ($employeeData) {
|
if ($employeeData) {
|
||||||
$id = $employeeData['id'];
|
$id = $employeeData['id'];
|
||||||
$hashedPassword = password_hash($plain_password, PASSWORD_DEFAULT);
|
$hashedPassword = password_hash($plain_password, PASSWORD_DEFAULT);
|
||||||
@ -1581,135 +1587,132 @@ class RestAuthenticationController extends AdminController
|
|||||||
}
|
}
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: Exception: " . $th->getMessage() . " --- Line: " . $th->getLine() . " --- Trace: " . $th->getTraceAsString());
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: Exception: " . $th->getMessage() . " --- Line: " . $th->getLine() . " --- Trace: " . $th->getTraceAsString());
|
||||||
return $this->respond(['status' => 'failed', 'code' => 500, 'message' => $th->getMessage()], 500);
|
$errorData = [
|
||||||
|
'message' => $th->getMessage(),
|
||||||
|
'file' => $th->getFile(),
|
||||||
|
'line' => $th->getLine(),
|
||||||
|
'code' => $th->getCode(),
|
||||||
|
'trace' => $th->getTraceAsString(),
|
||||||
|
'trace_array' => $th->getTrace(), // full array version (optional)
|
||||||
|
'function' => $th->getTrace()[0]['function'] ?? null,
|
||||||
|
'class' => $th->getTrace()[0]['class'] ?? null,
|
||||||
|
];
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 500, 'message' => $th->getMessage(), 'errorData' => $errorData], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function changePassword()
|
public function changePassword()
|
||||||
{
|
{
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* CHANGE PASSWORD START **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Function called");
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$payload = $this->request->getJSON(true);
|
|
||||||
|
|
||||||
|
$payload = $this->request->getJSON(true);
|
||||||
$mobile_number = $payload['mobile_number'] ?? null;
|
$mobile_number = $payload['mobile_number'] ?? null;
|
||||||
$email_id = $payload['email_id'] ?? null;
|
$email_id = $payload['email_id'] ?? null;
|
||||||
$client_id = $payload['client_id'] ?? null;
|
$client_id = $payload['client_id'] ?? null;
|
||||||
$otp = $payload['otp'] ?? null;
|
$old_password = $payload['old_password'] ?? null;
|
||||||
$new_password = $payload['new_password'] ?? null;
|
$new_password = $payload['new_password'] ?? null;
|
||||||
|
$confirm_password = $payload['confirm_password'] ?? null;
|
||||||
|
|
||||||
if (empty($otp) || empty($new_password)) {
|
if (!$mobile_number && !$email_id) {
|
||||||
return $this->respond([
|
return $this->respond(['status' => 'failed','code' => 400,'message' => 'Mobile number or Email ID is required'], 400);
|
||||||
'status' => 'failed',
|
|
||||||
'code' => 400,
|
|
||||||
'message' => 'OTP and new password are required'
|
|
||||||
], 400);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch employee details
|
if (empty($new_password) || empty($confirm_password) || empty($old_password)) {
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'old_password , New password and Confirm password are required' ], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($new_password !== $confirm_password){
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'New password and confirm password not matched'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build employee query
|
||||||
|
if ($mobile_number) {
|
||||||
|
|
||||||
$builder = $this->employeeModel
|
$builder = $this->employeeModel
|
||||||
->select('employees.*')
|
->select('employees.*')
|
||||||
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
|
->where('employees.mobile', $mobile_number)
|
||||||
->where('employees.relationship', 'Self')
|
->where('employees.relationship', 'Self')
|
||||||
->where('employees.is_active', 1)
|
|
||||||
->whereIn('employees.emp_status', ['active'])
|
|
||||||
->where('employee_polices.is_active', 1)
|
->where('employee_polices.is_active', 1)
|
||||||
->whereIn('employee_polices.status', ['active']);
|
->whereIn('employee_polices.status', ['active', 'expired'])
|
||||||
|
->where('employees.is_active', 1)
|
||||||
|
->whereIn('employees.emp_status', ['active', 'expired']);
|
||||||
if (!empty($client_id)) $builder->where('employees.client_id', $client_id);
|
if (!empty($client_id)) $builder->where('employees.client_id', $client_id);
|
||||||
|
|
||||||
if ($mobile_number) {
|
|
||||||
$builder->where('employees.mobile', $mobile_number);
|
|
||||||
} elseif ($email_id) {
|
|
||||||
$builder->where('employees.email_corporate', $email_id);
|
|
||||||
} else {
|
|
||||||
return $this->respond([
|
|
||||||
'status' => 'failed',
|
|
||||||
'code' => 400,
|
|
||||||
'message' => 'Mobile number or Email ID is required'
|
|
||||||
], 400);
|
|
||||||
}
|
|
||||||
|
|
||||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: employeeData: " . json_encode($employeeData ?? []));
|
} else {
|
||||||
|
|
||||||
|
$builder = $this->employeeModel
|
||||||
|
->select('employees.*')
|
||||||
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
|
->where('employees.email_corporate', $email_id)
|
||||||
|
->where('employees.relationship', 'Self')
|
||||||
|
->where('employee_polices.is_active', 1)
|
||||||
|
->whereIn('employee_polices.status', ['active', 'expired'])
|
||||||
|
->where('employees.is_active', 1)
|
||||||
|
->whereIn('employees.emp_status', ['active', 'expired']);
|
||||||
|
if (!empty($client_id)) $builder->where('employees.client_id', $client_id);
|
||||||
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
|
|
||||||
if (!$employeeData) {
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 404, 'message' => 'User not found'], 404);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check OTP validity (assuming fields: otp, otp_expiry exist)
|
$lastQuery = $this->employeeModel->db->getLastQuery();
|
||||||
if (empty($employeeData['otp']) || $employeeData['otp'] != $otp) {
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: Last Executed Query: " . $lastQuery);
|
||||||
return $this->respond(['status' => 'failed', 'code' => 401, 'message' => 'Invalid OTP'], 200);
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - savePassword: employeeData: " . json_encode($employeeData ?? []));
|
||||||
}
|
|
||||||
|
|
||||||
if (!empty($employeeData['otp_expiry']) && strtotime($employeeData['otp_expiry']) < time()) {
|
if ($employeeData && password_verify($old_password, $employeeData['password'])) {
|
||||||
return $this->respond(['status' => 'failed', 'code' => 401, 'message' => 'OTP expired'], 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hash new password
|
// Hash new password
|
||||||
$newHashedPassword = password_hash($new_password, PASSWORD_DEFAULT);
|
// $newHashedPassword = password_hash($new_password, PASSWORD_DEFAULT);
|
||||||
|
$newHashedPassword = $new_password;
|
||||||
|
|
||||||
// Update password and clear OTP
|
// Update password and clear OTP
|
||||||
$updated = $this->employeeModel->update($employeeData['id'], [
|
$updated = $this->employeeModel->update($employeeData['id'], [
|
||||||
'password' => $newHashedPassword,
|
'password' => $newHashedPassword,
|
||||||
'otp' => null,
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($updated) {
|
if ($updated) {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Password updated successfully");
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Password updated successfully");
|
||||||
log_message('error', ' ');
|
return $this->respond(['status' => 'success','code' => 200,'message' => 'Password changed successfully'], 200);
|
||||||
log_message('error', ' ************************************* CHANGE PASSWORD END **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
|
|
||||||
return $this->respond([
|
|
||||||
'status' => 'success',
|
|
||||||
'code' => 200,
|
|
||||||
'message' => 'Password changed successfully'
|
|
||||||
], 200);
|
|
||||||
} else {
|
} else {
|
||||||
return $this->respond([
|
return $this->respond(['status' => 'failed','code' => 500,'message' => 'Failed to update password' ], 500);
|
||||||
'status' => 'failed',
|
}
|
||||||
'code' => 500,
|
|
||||||
'message' => 'Failed to update password'
|
}else{
|
||||||
], 500);
|
return $this->respond(['status' => 'failed', 'code' => 404, 'message' => 'User not found'], 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Exception: " . $th->getMessage());
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - changePassword: Exception: " . $th->getMessage());
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* CHANGE PASSWORD END **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 500, 'message' => $th->getMessage()], 500);
|
return $this->respond(['status' => 'failed', 'code' => 500, 'message' => $th->getMessage()], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function verifyPassword()
|
public function verifyPassword()
|
||||||
{
|
{
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* POST START **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - Verify Password: Function called");
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$requestData = $this->request->getJSON(true);
|
|
||||||
|
|
||||||
|
$requestData = $this->request->getJSON(true);
|
||||||
$mobile_number = $requestData['mobile_number'] ?? null;
|
$mobile_number = $requestData['mobile_number'] ?? null;
|
||||||
$email_id = $requestData['email_id'] ?? null;
|
$email_id = $requestData['email_id'] ?? null;
|
||||||
$password = $requestData['password'] ?? null;
|
$password = $requestData['password'] ?? null;
|
||||||
$client_id = $requestData['client_id'] ?? null;
|
$client_id = $requestData['client_id'] ?? null;
|
||||||
|
|
||||||
|
if(!$mobile_number && !$email_id){
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => "", 'message' => 'Mobile number or Email ID is required'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
if (!$password) {
|
if (!$password) {
|
||||||
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => "", 'message' => 'Password is required'], 400);
|
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => "", 'message' => 'Password is required'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 🔹 Fetch employee data
|
// 🔹 Fetch employee data
|
||||||
if ($mobile_number) {
|
if ($mobile_number) {
|
||||||
|
|
||||||
$builder = $this->employeeModel
|
$builder = $this->employeeModel
|
||||||
->select('employees.*')
|
->select('employees.*')
|
||||||
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
@ -1725,7 +1728,9 @@ class RestAuthenticationController extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
|
|
||||||
} elseif ($email_id) {
|
} elseif ($email_id) {
|
||||||
|
|
||||||
$builder = $this->employeeModel
|
$builder = $this->employeeModel
|
||||||
->select('employees.*')
|
->select('employees.*')
|
||||||
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
@ -1741,8 +1746,7 @@ class RestAuthenticationController extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
} else {
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => "", 'message' => 'Mobile number or Email ID is required'], 400);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$lastQuery = $this->employeeModel->db->getLastQuery();
|
$lastQuery = $this->employeeModel->db->getLastQuery();
|
||||||
@ -1770,11 +1774,8 @@ class RestAuthenticationController extends AdminController
|
|||||||
$employeeData['token_type'] = "post";
|
$employeeData['token_type'] = "post";
|
||||||
$token = JWTToken::encode($employeeData);
|
$token = JWTToken::encode($employeeData);
|
||||||
|
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* POST END **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
|
|
||||||
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $token], 200);
|
return $this->respond(['status' => 'success', 'code' => 200, 'data' => $token], 200);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Invalid password or employee not found");
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Invalid password or employee not found");
|
||||||
log_message('error', ' ');
|
log_message('error', ' ');
|
||||||
@ -1783,6 +1784,7 @@ class RestAuthenticationController extends AdminController
|
|||||||
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => "", 'message' => 'Invalid password'], 200);
|
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => "", 'message' => 'Invalid password'], 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Exception: " . $e->getMessage() . " --- Line: " . $e->getLine());
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Exception: " . $e->getMessage() . " --- Line: " . $e->getLine());
|
||||||
log_message('error', ' ');
|
log_message('error', ' ');
|
||||||
@ -1792,75 +1794,82 @@ class RestAuthenticationController extends AdminController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function sendChangePasswordOTP()
|
public function verifyOtp()
|
||||||
{
|
{
|
||||||
log_message('error', ' ');
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyOtp: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
||||||
log_message('error', ' ************************************* SEND OTP START **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - sendChangePasswordOTP: Function called");
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - sendChangePasswordOTP: Received payload = " . json_encode($this->request->getJSON() ?? []));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$requestData = $this->request->getJSON(true);
|
|
||||||
|
|
||||||
|
$requestData = $this->request->getJSON(true);
|
||||||
|
$mobile_number = $requestData['mobile_number'] ?? null;
|
||||||
$email_id = $requestData['email_id'] ?? null;
|
$email_id = $requestData['email_id'] ?? null;
|
||||||
$client_id = $requestData['client_id'] ?? null;
|
$client_id = $requestData['client_id'] ?? null;
|
||||||
|
$otp = $requestData['otp'] ?? null;
|
||||||
|
|
||||||
if (!$email_id) {
|
if(!$mobile_number && !$email_id){
|
||||||
return $this->respond(['status' => 'failed', 'code' => 400, 'data' => "", 'message' => 'Email ID is required'], 400);
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'Mobile number or Email ID is required'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get employee details
|
if (!$otp) {
|
||||||
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => 'OTP is required'], 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔹 Fetch employee data
|
||||||
|
if ($mobile_number) {
|
||||||
|
|
||||||
$builder = $this->employeeModel
|
$builder = $this->employeeModel
|
||||||
->select('employees.id, employees.mobile, employees.email_corporate, employees.client_id')
|
->select('employees.*')
|
||||||
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
->where('employees.is_active', 1)
|
->where('employees.mobile', $mobile_number)
|
||||||
->whereIn('employees.emp_status', ['active'])
|
->where('employees.relationship', 'Self')
|
||||||
->where('employee_polices.is_active', 1)
|
->where('employee_polices.is_active', 1)
|
||||||
->whereIn('employee_polices.status', ['active'])
|
->whereIn('employee_polices.status', ['active'])
|
||||||
->where('employees.relationship', 'Self');
|
->where('employees.is_active', 1)
|
||||||
|
->whereIn('employees.emp_status', ['active']);
|
||||||
|
|
||||||
if (!empty($client_id)) {
|
if (!empty($client_id)) {
|
||||||
$builder->where('employees.client_id', $client_id);
|
$builder->where('employees.client_id', $client_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($email_id) {
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
$builder->where('employees.email_corporate', $email_id);
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$builder = $this->employeeModel
|
||||||
|
->select('employees.*')
|
||||||
|
->join('employee_polices', 'employees.id = employee_polices.employee_id')
|
||||||
|
->where('employees.email_corporate', $email_id)
|
||||||
|
->where('employees.relationship', 'Self')
|
||||||
|
->where('employee_polices.is_active', 1)
|
||||||
|
->whereIn('employee_polices.status', ['active'])
|
||||||
|
->where('employees.is_active', 1)
|
||||||
|
->whereIn('employees.emp_status', ['active']);
|
||||||
|
|
||||||
|
if (!empty($client_id)) {
|
||||||
|
$builder->where('employees.client_id', $client_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
$employeeData = $builder->orderBy('employees.id', 'desc')->first();
|
||||||
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - sendChangePasswordOTP: Employee Data: " . json_encode($employeeData ?? []));
|
|
||||||
|
|
||||||
if (!$employeeData) {
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 404, 'data' => "", 'message' => 'Employee not found'], 404);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate 6-digit OTP
|
$lastQuery = $this->employeeModel->db->getLastQuery();
|
||||||
$otp = rand(100000, 999999);
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: Last Executed Query: " . $lastQuery);
|
||||||
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyPassword: employeeData: " . json_encode($employeeData ?? []));
|
||||||
|
|
||||||
// Save OTP to DB (assuming 'otp' and 'otp_expiry' columns exist)
|
// 🔹 Verify otp
|
||||||
$this->employeeModel->update($employeeData['id'], [
|
if ($employeeData && $employeeData['otp'] == $otp) {
|
||||||
'otp' => $otp,
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyOtp: OTP Verified employee found");
|
||||||
]);
|
$this->employeeModel->where('id', $employeeData['id'])->where('otp', $otp)->where('relationship', 'self')->set(['otp'=>null])->update();
|
||||||
|
return $this->respond(['status' => 'success', 'code' => 200, 'message' => "OTP verified succesfully"], 200);
|
||||||
|
} else {
|
||||||
|
|
||||||
// Send OTP via SMS or Email (you can replace with your actual helper)
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyOtp: OTP verification failed, OTP not found in the post db");
|
||||||
if ($email_id) {
|
return $this->respond(['status' => 'failed', 'code' => 400, 'message' => "OTP verification failed"], 200);
|
||||||
// Example: MailHelper::sendMail($email_id, 'Password Change OTP', "Your OTP is {$otp}");
|
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - sendChangePasswordOTP: OTP {$otp} sent to email {$email_id}");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* SEND OTP END **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
|
|
||||||
return $this->respond(['status' => 'success', 'code' => 200, 'data' => ['otp_sent_to' => $email_id], 'message' => 'OTP sent successfully'], 200);
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - sendChangePasswordOTP: Exception: " . $e->getMessage() . " --- Line: " . $e->getLine());
|
$this->myLogger->logme("error", "REST-AUTH-CONTROLLER - verifyOtp: Exception: " . $e->getMessage() . " --- Line: " . $e->getLine());
|
||||||
log_message('error', ' ');
|
|
||||||
log_message('error', ' ************************************* SEND OTP END **************************************** ');
|
|
||||||
log_message('error', ' ');
|
|
||||||
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => "", 'message' => $e->getMessage()], 500);
|
return $this->respond(['status' => 'failed', 'code' => 500, 'data' => "", 'message' => $e->getMessage()], 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,6 +45,7 @@ class EmployeeModel extends Model
|
|||||||
"mpin",
|
"mpin",
|
||||||
"is_mpin_skipped",
|
"is_mpin_skipped",
|
||||||
"is_biometric_enabled",
|
"is_biometric_enabled",
|
||||||
|
"password",
|
||||||
];
|
];
|
||||||
|
|
||||||
// Callbacks
|
// Callbacks
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user