Server IP : 103.191.208.50 / Your IP : 216.73.216.53 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, popen, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/celkcksm/banking.ncriptech.com/application/controllers/admin/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Auth extends MY_Controller { public function __construct(){ parent::__construct(); $this->load->library('mailer'); $this->load->model('admin/auth_model', 'auth_model'); } //-------------------------------------------------------------- public function index(){ if($this->session->has_userdata('is_admin_login')){ redirect('admin/dashboard'); } else{ redirect('admin/auth/login'); } } //-------------------------------------------------------------- public function login(){ if($this->input->post('submit')){ $this->form_validation->set_rules('username', 'Username', 'trim|required'); $this->form_validation->set_rules('password', 'Password', 'trim|required'); if ($this->form_validation->run() == FALSE) { $data = array( 'errors' => validation_errors() ); $this->session->set_flashdata('error', $data['errors']); redirect(base_url('admin/auth/login'),'refresh'); } else { $data = array( 'username' => $this->input->post('username'), 'password' => $this->input->post('password') ); $result = $this->auth_model->login($data); if($result){ if($result['is_verify'] == 0){ $this->session->set_flashdata('error', 'Please verify your email address!'); redirect(base_url('admin/auth/login')); exit(); } if($result['is_active'] == 0){ $this->session->set_flashdata('error', 'Account is disabled by Admin!'); redirect(base_url('admin/auth/login')); exit(); } if($result['is_admin'] == 1){ $admin_data = array( 'user_id' => $result['user_id'], 'username' => $result['username'], 'admin_role_id' => $result['admin_role_id'], 'admin_role' => $result['admin_role_title'], 'is_supper' => $result['is_supper'], 'is_admin_login' => TRUE ); $this->session->set_userdata($admin_data); $this->rbac->set_access_in_session(); // set access in session if($result['is_supper']) redirect(base_url('admin/dashboard/index_1'), 'refresh'); else redirect(base_url('admin/dashboard'), 'refresh'); } } else{ $this->session->set_flashdata('errors', 'Invalid Username or Password!'); redirect(base_url('admin/auth/login')); } } } else{ $data['title'] = 'Login'; $data['navbar'] = false; $data['sidebar'] = false; $data['footer'] = false; $data['bg_cover'] = true; $this->load->view('admin/includes/_header', $data); $this->load->view('admin/auth/login'); $this->load->view('admin/includes/_footer', $data); } } //------------------------------------------------------------------------- public function register(){ if($this->input->post('submit')){ // for google recaptcha if ($this->recaptcha_status == true) { if (!$this->recaptcha_verify_request()) { $this->session->set_flashdata('form_data', $this->input->post()); $this->session->set_flashdata('error', 'reCaptcha Error'); redirect(base_url('admin/auth/register')); exit(); } } $this->form_validation->set_rules('username', 'Username', 'trim|alpha_numeric|is_unique[ci_users.username]|required'); $this->form_validation->set_rules('firstname', 'Firstname', 'trim|required'); $this->form_validation->set_rules('lastname', 'Lastname', 'trim|required'); $this->form_validation->set_rules('email', 'Email', 'trim|valid_email|is_unique[ci_users.email]|required'); $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[8]'); $this->form_validation->set_rules('confirm_password', 'Password Confirmation', 'trim|required|matches[password]'); if ($this->form_validation->run() == FALSE) { $data = array( 'errors' => validation_errors() ); $this->session->set_flashdata('form_data', $this->input->post()); $this->session->set_flashdata('errors', $data['errors']); redirect(base_url('admin/auth/register'),'refresh'); } else{ $data = array( 'username' => $this->input->post('username'), 'firstname' => $this->input->post('firstname'), 'lastname' => $this->input->post('lastname'), //'admin_role_id' => 2, // By default i putt role is 2 for registraiton 'admin_role_id' => 0, // DH : default role is set to 0 (Guest) 'email' => $this->input->post('email'), 'password' => password_hash($this->input->post('password'), PASSWORD_BCRYPT), 'is_active' => 1, 'is_verify' => 0, 'is_admin' => 0, // DH missing : otherwise the new user is Admin !!! 'is_user' => 1, // DH missing : works with the code above 'token' => md5(rand(0,1000)), 'last_ip' => '', 'created_at' => date('Y-m-d : h:m:s'), 'updated_at' => date('Y-m-d : h:m:s'), ); $data = $this->security->xss_clean($data); $result = $this->auth_model->register($data); if($result){ //sending welcome email to user $this->load->helper('email_helper'); $mail_data = array( 'fullname' => $data['firstname'].' '.$data['lastname'], 'verification_link' => base_url('admin/auth/verify/').'/'.$data['token'] ); $to = $data['email']; $email = $this->mailer->mail_template($to,'email-verification',$mail_data); if($email){ $this->session->set_flashdata('success', 'Your Account has been made, please verify it by clicking the activation link that has been send to your email.'); redirect(base_url('admin/auth/login')); } else{ echo 'Email Error'; } } } } else{ $data['title'] = 'Create an Account'; $data['navbar'] = false; $data['sidebar'] = false; $data['footer'] = false; $data['bg_cover'] = true; $this->load->view('admin/includes/_header', $data); $this->load->view('admin/auth/register'); $this->load->view('admin/includes/_footer', $data); } } //---------------------------------------------------------- public function verify(){ $verification_id = $this->uri->segment(4); $result = $this->auth_model->email_verification($verification_id); if($result){ $this->session->set_flashdata('success', 'Your email has been verified, you can now login.'); redirect(base_url('admin/auth/login')); } else{ $this->session->set_flashdata('success', 'The url is either invalid or you already have activated your account.'); redirect(base_url('admin/auth/login')); } } //-------------------------------------------------- public function forgot_password(){ if($this->input->post('submit')){ //checking server side validation $this->form_validation->set_rules('email', 'Email', 'valid_email|trim|required'); if ($this->form_validation->run() == FALSE) { $data = array( 'errors' => validation_errors() ); $this->session->set_flashdata('errors', $data['errors']); redirect(base_url('admin/auth/forget_password'),'refresh'); } $email = $this->input->post('email'); $response = $this->auth_model->check_user_mail($email); if($response){ $rand_no = rand(0,1000); $pwd_reset_code = md5($rand_no.$response['user_id']); $this->auth_model->update_reset_code($pwd_reset_code, $response['user_id']); // --- sending email $to = $response['email']; $mail_data= array( 'fullname' => $response['firstname'].' '.$response['lastname'], 'reset_link' => base_url('admin/auth/reset_password/'.$pwd_reset_code) ); $this->mailer->mail_template($to,'forget-password',$mail_data); if($email){ $this->session->set_flashdata('success', 'We have sent instructions for resetting your password to your email'); redirect(base_url('admin/auth/forgot_password')); } else{ $this->session->set_flashdata('error', 'There is the problem on your email'); redirect(base_url('admin/auth/forgot_password')); } } else{ $this->session->set_flashdata('error', 'The Email that you provided are invalid'); redirect(base_url('admin/auth/forgot_password')); } } else{ $data['title'] = 'Forget Password'; $data['navbar'] = false; $data['sidebar'] = false; $data['footer'] = false; $data['bg_cover'] = true; $this->load->view('admin/includes/_header', $data); $this->load->view('admin/auth/forget_password'); $this->load->view('admin/includes/_footer', $data); } } //---------------------------------------------------------------- public function reset_password($id=0){ // check the activation code in database if($this->input->post('submit')){ $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[5]'); $this->form_validation->set_rules('confirm_password', 'Password Confirmation', 'trim|required|matches[password]'); if ($this->form_validation->run() == FALSE) { $data = array( 'errors' => validation_errors() ); $this->session->set_flashdata('reset_code', $id); $this->session->set_flashdata('errors', $data['errors']); redirect($_SERVER['HTTP_REFERER'], 'refresh'); } else{ $new_password = password_hash($this->input->post('password'), PASSWORD_BCRYPT); $this->auth_model->reset_password($id, $new_password); $this->session->set_flashdata('success','New password has been Updated successfully.Please login below'); redirect(base_url('admin/auth/login')); } } else{ $result = $this->auth_model->check_password_reset_code($id); if($result){ $data['title'] = 'Reseat Password'; $data['reset_code'] = $id; $data['navbar'] = false; $data['sidebar'] = false; $data['footer'] = false; $data['bg_cover'] = true; $this->load->view('admin/includes/_header', $data); $this->load->view('admin/auth/reset_password'); $this->load->view('admin/includes/_footer', $data); } else{ $this->session->set_flashdata('error','Password Reset Code is either invalid or expired.'); redirect(base_url('admin/auth/forgot_password')); } } } //----------------------------------------------------------------------- public function logout(){ $this->session->sess_destroy(); redirect(base_url('admin/auth/login'), 'refresh'); } // Get Country. State and City //---------------------------------------- public function get_country_states() { $states = $this->db->select('*')->where('country_id',$this->input->post('country'))->get('ci_states')->result_array(); $options = array('' => 'Select Option') + array_column($states,'name','id'); $html = form_dropdown('state',$options,'','class="form-control select2" required'); $error = array('msg' => $html); echo json_encode($error); } //---------------------------------------- public function get_state_cities() { $cities = $this->db->select('*')->where('state_id',$this->input->post('state'))->get('ci_cities')->result_array(); $options = array('' => 'Select Option') + array_column($cities,'name','id'); $html = form_dropdown('city',$options,'','class="form-control select2" required'); $error = array('msg' => $html); echo json_encode($error); } } // end class ?>