Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function random_str($length = 10, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'){
- $str = '';
- $max = mb_strlen($keyspace, '8bit') - 1;
- for ($i = 0; $i < $length; ++$i) {
- $str .= $keyspace[random_int(0, $max)];
- }
- return $str;
- }
- public function change_password($token){
- if(isset($this->session->userdata['logged_in'])) {
- redirect('dashboard');
- }
- $user_info = $this->User_model->get_info_from_reset_token($token);
- if(!isset($user_info)){
- show_404();
- die();
- }
- $username = $user_info->username;
- $timestamp = $user_info->timestamp;
- $this->session->set_flashdata('username',$username);
- $time = new DateTime($timestamp, new DateTimeZone('UTC'));
- $res_time = strtotime($time->format('Y-m-d H:i:s O'));
- $now_time = time();
- if(($now_time-$res_time)<86400){
- $this->load->view('auth/set_password');
- }
- else {
- $data = array(
- 'error_msg' => "Reset link has expired. Enter username to send again."
- );
- $this->load->view('auth/reset_password',$data);
- }
- }
- public function set_reset_password(){
- if(isset($this->session->userdata['logged_in'])) {
- redirect('dashboard');
- }
- $password = $this->input->post('password');
- $this->User_model->update_password($password,$_SESSION['username']);
- $this->session->unset_userdata['username'];
- $this->load->view('auth/reset_pass_done');
- }
- public function logout(){
- $this->session->unset_userdata('logged_in');
- redirect('auth');
- }
- }
- ---------------------------------Model----------------------------------------------
- <?php
- defined('BASEPATH') OR exit('No direct script access allowed');
- class User_model extends CI_Model {
- public function __construct() {
- parent::__construct();
- }
- public function check_user($username) {
- $this->db->from('users');
- $this->db->where('username',$username);
- $query = $this->db->get();
- $row = $query->row();
- if(isset($row)){
- return true;
- }
- return false;
- }
- public function get_password($username){
- $this->db->from('users');
- $this->db->where('username',$username);
- $query = $this->db->get();
- $row = $query->row();
- return $row->password;
- }
- public function get_user_data($username) {
- $this->db->from('users');
- $this->db->where('username',$username);
- $query = $this->db->get();
- $row = $query->row();
- $data = array(
- 'username' => $username,
- 'firstName' => $row->first_name,
- 'lastName' => $row->last_name,
- 'role' => $this->get_role($username),
- 'dept' => $this->get_user_dept($username),
- );
- return $data;
- }
- public function get_username($data) {
- $this->db->select('user_role.user_name');
- $this->db->from('user_role');
- $this->db->join('user_department', 'user_role.user_name = user_department.user_name');
- $this->db->where($data);
- $query = $this->db->get();
- $row = $query->row();
- return $row->user_name;
- }
- public function get_role($username){
- $this->db->from('user_role AS A');
- $this->db->join('roles AS B','A.role_id = B.role_id');
- $this->db->where('user_name',$username);
- $this->db->select('A.role_id, role_name');
- $query = $this->db->get();
- $row = $query->row();
- return $row;
- }
- public function get_user_dept($username){
- $this->db->from('user_department AS A');
- $this->db->join('departments AS B','A.department_id = B.department_id');
- $this->db->where('user_name',$username);
- $this->db->select('B.department_id, B.department_name');
- $query = $this->db->get();
- $row = $query->row();
- return $row;
- }
- public function get_user_email($username){
- $this->db->select('email');
- $this->db->from('users');
- $this->db->where('username',$username);
- $query = $this->db->get();
- $email = $query->row()->email;
- return $email;
- }
- public function get_user_first_name($username){
- $this->db->select('first_name');
- $this->db->from('users');
- $this->db->where('username',$username);
- $query = $this->db->get();
- $firstName = $query->row()->first_name;
- return $firstName;
- }
- public function add_password_reset($username,$token){
- $data = array(
- 'username' => $username,
- 'token' => $token
- );
- $this->db->insert('password_resets',$data);
- }
- public function get_info_from_reset_token($token){
- $this->db->from('password_resets');
- $this->db->where('token',$token);
- $query = $this->db->get();
- $row = $query->row();
- return $row;
- }
- public function in_reset_password($username){
- $this->db->from('password_resets');
- $this->db->where('username',$username);
- $query = $this->db->get();
- if($query->num_rows()==0){
- return false;
- }
- return true;
- }
- public function update_password($password,$username){
- $user = $username;
- $this->db->where('username',$user);
- $this->db->update('users', array('password' => $password));
- $this->db->delete('password_resets', array('username' => $user));
- }
- }
Add Comment
Please, Sign In to add comment