KumbiaPHP  beta2
Framework PHP
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Páginas
model_auth.php
Ir a la documentación de este archivo.
1 <?php
31 class ModelAuth extends Auth2
32 {
33 
39  protected $_model = 'users';
45  protected $_sessionNamespace = 'default';
51  protected $_fields = array('id');
52 
58  public function setModel($model)
59  {
60  $this->_model = $model;
61  }
62 
68  public function setSessionNamespace($namespace)
69  {
70  $this->_sessionNamespace = $namespace;
71  }
72 
78  public function setFields($fields)
79  {
80  $this->_fields = $fields;
81  }
82 
90  protected function _check($username, $password)
91  {
92  // TODO $_SERVER['HTTP_HOST'] puede ser una variable por si quieren ofrecer autenticacion desde cualquier host indicado
93  if (strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === FALSE) {
94  self::log('INTENTO HACK IP ' . $_SERVER['HTTP_REFERER']);
95  $this->setError('Intento de Hack!');
96  return FALSE;
97  }
98 
99  // TODO: revisar seguridad
100  $password = hash($this->_algos, $password);
101  //$username = addslashes($username);
102  $username = filter_var($username, FILTER_SANITIZE_MAGIC_QUOTES);
103 
104  $Model = Load::model($this->_model);
105  if ($user = $Model->find_first("$this->_login = '$username' AND $this->_pass = '$password'")) {
106  // Carga los atributos indicados en sesion
107  foreach ($this->_fields as $field) {
108  Session::set($field, $user->$field, $this->_sessionNamespace);
109  }
110 
111  Session::set($this->_key, TRUE);
112  return TRUE;
113  }
114 
115  $this->setError('Error Login!');
116  Session::set($this->_key, FALSE);
117  return FALSE;
118  }
119 
120 }