Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2012
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.95 KB | None | 0 0
  1. <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  2.  
  3. class Auth_lib
  4. {
  5.     /**
  6.      *
  7.      * @var object
  8.      */
  9.     private $CI;
  10.    
  11.     /**
  12.      * construct function
  13.      */
  14.     public function __construct()
  15.     {
  16.         $this->CI =& get_instance();
  17.  
  18.         $this->CI->load->library('session');
  19.         $this->CI->load->helper('cookie');
  20.         $this->CI->load->model('auth_mod');
  21.     }
  22.    
  23.     /**
  24.      * login the user
  25.      *
  26.      * @param string $email
  27.      * @param string $password
  28.      */
  29.     public function login($email, $password, $remember_me)
  30.     {
  31.         $user = $this->CI->auth_mod->login($email, $password);
  32.        
  33.         if ($user)
  34.         {
  35.             $session = array(
  36.                             'logged' => TRUE,
  37.                             'id' => $user->id,
  38.                             'name' => $user->name,
  39.                             'email' => $user->email,
  40.                             'last_login' => $user->last_login
  41.                         );
  42.            
  43.             $this->create_session($session);
  44.            
  45.             if ($remember_me)
  46.             {
  47.                 $value = sha1(uniqid(rand(), TRUE));
  48.                
  49.                 $this->CI->auth_mod->create_cookie($user->id, $value);
  50.        
  51.                 $cookie = array(
  52.                         'name'   => 'remember_me',
  53.                         'value'  => $value,
  54.                         'expire' => '86500',
  55.                         'domain' => '',
  56.                         'path'   => '/',
  57.                         'prefix' => '',
  58.                         'secure' => TRUE
  59.                 );
  60.                
  61.                 set_cookie($cookie);
  62.             }
  63.         }
  64.     }
  65.    
  66.     /**
  67.      * auto login the user for "remember me"
  68.      *
  69.      * @param integer $id
  70.      */
  71.     public function auto_login()
  72.     {
  73.         $cookie_value = get_cookie('remember_me');
  74.        
  75.         if ($this->session->userdata('logged') !== TRUE && $cookie_value)
  76.         {
  77.             $user = $this->CI->auth_mod->auto_login($cookie_value);
  78.        
  79.             if ($user)
  80.             {
  81.                 $session = array(
  82.                         'logged' => TRUE,
  83.                         'id' => $user->id,
  84.                         'name' => $user->name,
  85.                         'email' => $user->email,
  86.                         'last_login' => $user->last_login
  87.                 );
  88.        
  89.                 $this->create_session($session);
  90.                
  91.                 return TRUE;
  92.             }
  93.         }
  94.        
  95.         return FALSE;
  96.     }
  97.    
  98.     /**
  99.      * create user session
  100.      *
  101.      * @param array $session
  102.      */
  103.     public function create_session($session)
  104.     {
  105.         $user_role = $this->CI->auth_mod->get_user_role($session['id']);
  106.        
  107.         foreach ($user_role as $role)
  108.         {
  109.             if ($role === 99)
  110.             {
  111.                 $this->session->set_userdata('admin', TRUE);
  112.             }
  113.         }
  114.        
  115.         $this->CI->auth_mod->update_last_login($session['id']);
  116.        
  117.         $this->CI->session->set_userdata($session);
  118.     }
  119.    
  120.     /**
  121.      * logout the user
  122.      */
  123.     public function logout()
  124.     {
  125.         $this->CI->session->sess_destroy();
  126.        
  127.         $cookie_value = get_cookie('remember_me');
  128.        
  129.         if ($cookie_value)
  130.         {
  131.             delete_cookie('remember_me');
  132.        
  133.             $this->CI->auth_mod->delete_cookie($cookie_value);
  134.         }
  135.     }
  136.    
  137.     /**
  138.      * create forgotten password token
  139.      *
  140.      * @param integer $user_email
  141.      */
  142.     public function create_forgotten_password($user_email)
  143.     {
  144.         $user_id = $this->CI->auth_mod->get_user_id_by_email($user_email);
  145.        
  146.         if ($user_id)
  147.         {
  148.             $value = sha1(uniqid(rand(), TRUE));
  149.            
  150.             $this->CI->auth_mod->create_forgotten_password($user_email, $value);
  151.            
  152.             return $value;
  153.         }
  154.        
  155.         return FALSE;      
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement