diff --git a/application/config/routes.php b/application/config/routes.php index a05ba3d1..64796a1f 100755 --- a/application/config/routes.php +++ b/application/config/routes.php @@ -153,9 +153,13 @@ $route['changePassword'] = "user/changePassword"; $route['pageNotFound'] = "user/pageNotFound"; //<-----------Application Email & ForgetPassword Routes------------> +$route['checkEmailExists'] = "user/checkEmailExists"; +$route['forgotPassword'] = "login/forgotPassword"; +$route['resetPasswordUser'] = "login/resetPasswordUser";//reset password without OTP +$route['resetPasswordConfirmUser'] = "login/resetPasswordConfirmUser";//reset password with OTP + $route['checkEmailExists'] = "user/checkEmailExists"; - $route['forgotPassword'] = "login/forgotPassword"; $route['monthlypay'] = "payslip/monthlyInputs"; $route['ExcelUpload2'] = "payslip/viewUpload2"; diff --git a/application/controllers/login.php b/application/controllers/login.php index 3ea42637..0e00b40c 100755 --- a/application/controllers/login.php +++ b/application/controllers/login.php @@ -124,151 +124,132 @@ class Login extends CI_Controller { $this->load->view('forgotPassword'); } - + + /** - * This function used to generate reset password request link + * To reset password of the user (without one time code) */ - function resetPasswordUser() - { - $status = ''; - - $this->load->library('form_validation'); - - $this->form_validation->set_rules('login_email','Email','trim|required|valid_email|xss_clean'); - - if($this->form_validation->run() == FALSE) - { - $this->forgetPasswordUser(); - } - else - { - $email = $this->input->post('login_email'); - - if($this->user_model->checkEmailExist($email)) - { - $encoded_email = urlencode($email); - - $this->load->helper('string'); - $data['email'] = $email; - $data['activation_id'] = random_string('alnum',15); - $data['created_dtm'] = date('Y-m-d H:i:s'); - $data['agent'] = $this->getBrowserAgent(); - $data['client_ip'] = $this->input->ip_address(); - - $save = $this->user_model->resetPasswordUser($data); - - if($save) - { - $config['protocol'] = 'sendmail'; - $config['mailpath'] = '/usr/sbin/sendmail'; - $config['charset'] = 'UTF-8'; - $config['wordwrap'] = TRUE; - $config['mailtype'] = 'html'; - - $this->load->library('email', $config); - - $data1['reset_link'] = base_url() . "resetPasswordConfirmUser/" . $data['activation_id'] . "/" . $encoded_email; - $data1['info'] = $this->user_model->getCustomerInfoByEmail($email); - - $this->email->from(ADMIN_EMAIL_ID, WEBSITE); - $this->email->to($email); - $this->email->subject(RESET_PASSWORD_EMAIL_SUBJECT); - $this->email->message($this->load->view('email', $data1, TRUE)); - - if ($this->email->send()) - { - $status = 'send'; - } - else - { - $status = 'notsend'; - } - } - else - { - $status = 'unable'; - } - } - else - { - $status = 'invalid'; - } - - echo json_encode(array('status'=>$status)); - } - } - - // This function used to reset the password - function resetPasswordConfirmUser() - { - - // Get email and activation code from URL values at index 3-4 - $email = urldecode($this->uri->segment(3)); - $activation_id = $this->uri->segment(2); - - // Check activation id in database - $is_correct = $this->user_model->checkActivationDetails($email, $activation_id); - - $data['email'] = $email; - $data['activation_code'] = $activation_id; - - if ($is_correct == 1) - { - $this->load->view('includes/header'); - $this->load->view('new_password', $data); - $this->load->view('includes/footer'); - } - else - { - redirect('user'); - } - } + function resetPasswordUser(){ + // echo 'hi'; + // die(); - // This function used to create new password - function createPasswordUser() - { - $status = ''; - $message = ''; - - $this->load->library('form_validation'); - - $this->form_validation->set_rules('password','New Password','required|max_length[20]'); - $this->form_validation->set_rules('cpassword','New Re-Password','trim|required|matches[password]|max_length[20]'); - - if($this->form_validation->run() == FALSE) - { - echo json_encode(array('status' => 'validation', 'message' => 'Please validate the fields')); + $mobileno = $this->input->post('phno'); + $emailid = $this->input->post('email'); + $result = $this->login_model->getuserid($mobileno,$emailid); + + if(!empty($result)){ + + $string = "abcd".rand(100000,999999)."lmnxyz"; + $string_shuffled = str_shuffle($string); + $passcode = substr($string_shuffled, 1, 6); + $password = "SIDH@".$passcode; + + $mobile = "91".$result[0]->ContactNumber; + //$msg = "Your Password is 'resico1234' sent from Resico Industries "; + $msg = "Hi " .$result[0]->FirstName. ", + \n Your password has been resetted sucessfully. + \n Please login with your new password '".$password."'"; + + $message = urlencode($msg); + + $ch=curl_init(); + curl_setopt($ch,CURLOPT_URL,"https://smsapi.24x7sms.com/api_2.0/SendSMS.aspx?APIKEY=xegCdYUIMf3&MobileNo=".$mobile."&SenderID=VNBAIT&Message=".$message."&ServiceName=PROMOTIONAL_HIGH"); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + $output =curl_exec($ch); + curl_close($ch); + + $resetpassword = getHashedPassword($password); + + $updatepassword = $this->login_model->updatepassword($result[0]->userId,$resetpassword); + + echo ""; + redirect('/loginMe','refresh'); } - else - { - $password = $this->input->post('password'); - $cpassword = $this->input->post('cpassword'); - $email = $this->input->post('email'); - $activation_id = $this->input->post('activation_id'); - - // Check activation id in database - $is_correct = $this->user_model->checkActivationDetails($email, $activation_id); - - if(($is_correct == 1) && ($password == $cpassword)) - { - $data = array('email_id'=>$email, 'password'=>$password); - - $this->user_model->createPasswordUser($data); - - $status = 'success'; - $message = 'Password changed successfully'; - } - else - { - $status = 'error'; - $message = 'Password changed failed'; - } - - echo json_encode(array('status'=>$status, 'message'=>$message)); + else{ + echo ""; + redirect('/loginMe','refresh'); } } + /** + * To Get One time code to reset password of the user (ajax call) + */ + /** function getOTP() + * { + * $id = $this->input->post('id'); + * $result = $this->login_model->temp($id); + * if(!empty($result)){ + * $string = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + * $string_shuffled = str_shuffle($string); + * $password = substr($string_shuffled, 1, 7); + * $otp = rand(1000, 9999); + * echo "resico@".rand(1000,9999);die; + * + * //print_r($result);die; + * //$result[0]->ContactNumber; + * + * $mobile = "91".$result[0]->ContactNumber; + * //$msg = "Your Password is 'resico1234' sent from Resico Industries "; + * $msg = "Hi " .$result[0]->FirstName. ", + * \n We have generated One Time Code For You. This code used for reset your password + * \n YOUR CODE IS'".$password."'and'".$otp."'"; + * + * $message = urlencode($msg); + * // echo $mobile , $message; + * $ch=curl_init(); + * curl_setopt($ch,CURLOPT_URL,"https://smsapi.24x7sms.com/api_2.0/SendSMS.aspx?APIKEY=xegCdYUIMf3&MobileNo=".$mobile."&SenderID=VNBAIT&Message=".$message."&ServiceName=PROMOTIONAL_HIGH"); + * curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); + * $output =curl_exec($ch); + * + * //return $output; + * //print_r($output);exit(); + * curl_close($ch); + * //echo json_encode($result); + * $updateotp = $this->login_model->temp2($result[0]->userId,$otp); + * $data = $updateotp[0]->OTP; + * echo $data; + * }} + */ + + /** + * After Getting One time code + * Reset password of the user (with OTP) + */ + /** function resetPasswordConfirmUser(){ + * + * // $this->load->library('form_validation'); + * + * // $this->form_validation->set_rules('newPassword','New password','required|max_length[20]'); + * // $this->form_validation->set_rules('confirmPassword','Confirm new password','required|matches[newPassword]|max_length[20]'); + * + * $newPassword = $this->input->post('newPassword'); + * $ConfirmPassword = $this->input->post('confirmPassword'); + * + * $mobileno = $this->input->post('phno'); + * + * $da ta = $this->login_model->getuserdtl($mobileno); + * $userid = $data[0]->userId; + * $OTP = NULL; + * + * $Array = array('password'=>getHashedPassword($newPassword),'OTP'=>$OTP); + * + * $result = $this->login_model->resetpassword($Array,$userid); + * + * if($result > 0) + * { + * echo ""; redirect('login','refresh'); + * } + * else + * { + * echo ""; redirect('login','refresh'); + * } + * + * } + */ + + + } ?> diff --git a/application/models/login_model.php b/application/models/login_model.php index 9ee4d376..9e7916d3 100755 --- a/application/models/login_model.php +++ b/application/models/login_model.php @@ -46,6 +46,77 @@ class Login_model extends CI_Model // print_r( $this->db->last_query()); return $query->result(); } + /** + * get the user dtl + */ + function getuserid($mobileno,$emailid) + { + $this->db->select('UsrTbl.userId,UsrTbl.email,EmpTbl.ContactNumber,EmpTbl.FirstName'); + $this->db->from('tbl_users as UsrTbl'); + $this->db->join('T_Employee_Details as EmpTbl','UsrTbl.EmpID = EmpTbl.EmpID'); + $this->db->where('EmpTbl.ContactNumber', $mobileno); + $this->db->where('UsrTbl.email',$emailid); + $this->db->where('UsrTbl.isDeleted', 0); + $res = $this->db->get(); + return $res->result(); + + } + + /** + * To update opt in our database + **/ + function temp2($userId,$otp){ + $this->db->set('OTP',$otp); + $this->db->where('userId',$userId); + $this->db->update('tbl_users'); + $count = $this->db->affected_rows(); + + if($count > 0) + { + $subQuery = "select OTP from tbl_users where userId = '".$userId."'"; + $query = $this->db->query($subQuery); + return $query->result(); + } + } + + /** + * To get user id + **/ + function getuserdtl($phno){ + $this->db->select('BaseTbl.userId'); + $this->db->from('tbl_users as BaseTbl'); + $this->db->join('T_Employee_Details as Emp','BaseTbl.EmpID = Emp.EmpID'); + $this->db->where('Emp.ContactNumber', $phno); + $query = $this->db->get(); + $result = $query->result(); + return $result; + } + + /** + * To update password and otp + **/ + function resetpassword($Array,$userid){ + + $this->db->where('userId',$userid); + $this->db->update('tbl_users',$Array); + $count = $this->db->affected_rows(); + return $count; + + } + + /** + * To update password only + **/ + function updatepassword($userid,$password){ + + $this->db->set('password',$password); + $this->db->where('userId',$userid); + $this->db->update('tbl_users'); + $count = $this->db->affected_rows(); + return $count; + + } + } ?> diff --git a/application/views/forgotPassword.php b/application/views/forgotPassword.php index a37f8982..78fedfa4 100755 --- a/application/views/forgotPassword.php +++ b/application/views/forgotPassword.php @@ -2,7 +2,7 @@
-Forgot Password
- load->helper('form'); ?> -