Advertisement
Guest User

Untitled

a guest
May 20th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.06 KB | None | 0 0
  1. <?php
  2. class ModelAuth extends AuthAdapter
  3. {
  4.     /**
  5.      * Modelo a utilizar para el proceso de autenticacion
  6.      *
  7.      * @var String
  8.      */
  9.     protected $_model = 'users';
  10.    
  11.     /**
  12.      * Prefijo para campos cargados del modelo
  13.      *
  14.      * @var string
  15.      */
  16.     protected $_prefix = NULL;
  17.    
  18.     /**
  19.      * Campos que se cargan del modelo
  20.      *
  21.      * @var array
  22.      */
  23.     protected $_fields = array('id');
  24.    
  25.     /**
  26.      * Asigna el modelo a utilizar
  27.      *  
  28.      * @param string $model nombre de modelo
  29.      */
  30.     public function setModel($model)
  31.     {
  32.         $this->_model = $model;
  33.     }
  34.    
  35.     /**
  36.      * Asigna el prefijo para los campos del modelo que se cargaran en sesion
  37.      *  
  38.      * @param string $prefix prefijo para campos del modelo en sesion
  39.      */
  40.     public function setPrefix($prefix)
  41.     {
  42.         $this->_prefix = $prefix;
  43.     }
  44.    
  45.     /**
  46.      * Indica que campos del modelo se cargaran en sesion
  47.      *  
  48.      * @param array $fields campos a cargar
  49.      */
  50.     public function setFields($fields)
  51.     {
  52.         $this->_fields = $fields;
  53.     }
  54.    
  55.     /**
  56.      * Check
  57.      *
  58.      * @param $username
  59.      * @param $password
  60.      * @return bool
  61.      */
  62.     protected function _check ($username, $password)
  63.     {
  64.         // TODO $_SERVER['HTTP_HOST'] puede ser una variable por si quieren ofrecer autenticacion desde cualquier host indicado
  65.         if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === FALSE){
  66.             self::log('INTENTO HACK IP '.$_SERVER['HTTP_REFERER']);
  67.             $this->setError('Intento de Hack!');
  68.             return FALSE;
  69.         }
  70.        
  71.         // TODO: revisar seguridad
  72.         $password = hash($this->_algos, $password);
  73.         //$username = addslashes($username);
  74.         $username = filter_var($username, FILTER_SANITIZE_MAGIC_QUOTES);
  75.        
  76.         $Model = Load::model($this->_model);
  77.         if ($user = $Model->find_first("$this->_login = '$username' AND $this->_pass = '$password'")) {
  78.             // Carga los atributos indicados en sesion
  79.             foreach($this->_fields as $field) {
  80.                 Session::set("{$this->_prefix}$field", $user->$field);
  81.             }
  82.            
  83.             Session::set($this->_key, TRUE);
  84.             return TRUE;
  85.         }
  86.        
  87.         $this->setError('Error Login!');
  88.         Session::set($this->_key, FALSE);
  89.         return FALSE;
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement