(description) * @version GIT: $Id$ * @since Version 0.0.1 * @filesource * */ class Auth extends MY_Controller { /** * [__construct description] * * @method __construct */ public function __construct() { // To inherit directly the attributes of the parent class. parent::__construct(); ### Syntax : $this->load->model('Model Path' , 'Alias name'); ### The second parameter (optional) is used to call the method. $this->load->model('Auth_model','auth_model'); $this->load->model('MY_Model','MY_Model'); } /** * [index description] * * @method index * * @return [type] [description] */ public function index() { if(check_auth()){ redirect('Dashboard'); }else{ $this->layout->load_view('Auth/login'); } } public function authendicate() { $user = $this->auth_model->validate_user(); $business = $this->auth_model->validateBusiness($user->business_id); if ($user->business_id !== '0' && empty($business)) { $this->session->set_flashdata('msg', "Business Deactivated Contact Administrator"); redirect('login'); } if (empty($user)) { $this->session->set_flashdata('msg', "username not avaiable"); redirect('login'); } if (!empty($user) && $user->is_active == 0) { $this->session->set_flashdata('msg', "deactivate user"); redirect('login'); } // if (!empty($user)) { // if ($user->is_active == 0) { // $this->session->set_flashdata('msg', $user); // redirect('login'); // } // else{ // $this->session->set_flashdata('msg', $user); // redirect('login'); // } // } // if (!empty($user) && $user->status == 0) { // // account pending // echo json_encode(array('st'=>2)); // exit(); // } // if (!empty($user) && $user->status == 2) { // // account suspend // echo json_encode(array('st'=>3)); // exit(); // } // if ($user->role == 'user') { // $diff = date_difference($user->created_at); // if (!empty($user) && $user->email_verified == 0 && $this->settings->enable_email_verify == 1 && $diff < 2) { // // email verify // echo json_encode(array('st'=>4)); // exit(); // } // } // if ($user->role == 'subadmin' || $user->role == 'editor' || $user->role == 'viewer') { // $user_id = $user->parent_id; // }else{ // $user_id = $user->id; // } // if valid if(password_verify($this->input->post('password'), $user->password)) { $data = array( 'id' => $user->id, 'name' => $user->name, //'thumb' => $user->thumb, 'email' =>$user->email, 'role' =>$user->role, 'action_permit' =>$user->action_permit, 'business_id' =>$user->business_id, 'logged_in' => TRUE ); $data = $this->security->xss_clean($data); $this->session->set_userdata($data); redirect('Dashboard'); } // pass the value 1 when the username or password is wrong $this->session->set_flashdata('msg',"password doesn't match"); redirect('login'); } public function logout() { $this->auth_model->logout(); redirect('login'); } public function lost_your_password() { $this->layout->load_view("Auth/otp_verification"); } public function sendMail(){ // otp generator $otp = rand(100000, 999999); $data['otp'] = $otp; $mail = $this->input->get('email'); $where = 'email'; $user = $this->auth_model->validateUserForOtp($mail, $where); if (empty($user)) { $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "failed"; echo json_encode($data); } else{ $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "success"; $data['id'] = $user->id; $data['email'] = $mail; $id = $user->id; $table="users"; $datas['otp'] = $otp; $userData = $this->MY_Model->edit_option($datas, $id, $table); echo json_encode($data); } } public function sendOTP(){ $mail = $this->input->get('email'); $otp = $this->input->get('otp'); $where = 'email'; $user = $this->auth_model->validateUserForOtp($mail, $where); $id = $user->id; $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['id'] = $id; $data['email'] = $mail; $body =`

One-Time Password (OTP) Verification

Hello,

Your One-Time Password (OTP) for verification is:

`. $otp .`

This OTP is valid for a short period. Please do not share it with anyone.

If you did not request this OTP, please ignore this email.

Thank you!


© 2023

`; $subject = 'Forgot Password OTP Send'; $result = send_emails_forgot_password($mail, $subject, $body); if($result){ $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "success"; $data['id'] = $id; $data['email'] = $mail; echo json_encode($data); }else{ $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "failed"; $data['id'] = $id; $data['email'] = $mail; $data['result'] = $result; echo json_encode($data); } } public function verify_otp(){ $id = $this->input->post('id'); $email = $this->input->post('email'); $where = 'id'; $user_entered_otp = $this->input->post('otp'); $user = $this->auth_model->validateUserForOtp($id, $where); if ($user->otp == $user_entered_otp) { $data['generate_otp'] = $user->otp; $data['user_entered_otp'] = $user_entered_otp; $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "success"; $data['id'] = $id; $data['email'] = $email; $id = $id; $table = "users"; $datas['otp'] = ''; $userData = $this->MY_Model->edit_option($datas, $id, $table); $this->layout->load_view('Auth/change_password_form', $data); } else { $data['csrf_hash'] = $this->security->get_csrf_hash(); $data['status'] = "failed"; $data['id'] = $id; $data['email'] = $email; $this->layout->load_view("Auth/otp_verification", $data); } } public function change_password() { $id = $this->input->post('id'); $data['password'] = hash_password($this->input->post('password')); $table = "users"; $userData = $this->MY_Model->edit_option($data, $id, $table); redirect('login'); } }