KumbiaPHP beta2-dev
Framework PHP en español
model_auth.php
Ir a la documentación de este archivo.
00001 <?php
00022 class ModelAuth extends Auth2
00023 {
00029     protected $_model = 'users';
00030     
00036     protected $_sessionNamespace = 'default';
00037     
00043     protected $_fields = array('id');
00044     
00050     public function setModel($model)
00051     {
00052         $this->_model = $model;
00053     }
00054     
00060     public function setSessionNamespace($namespace)
00061     {
00062         $this->_sessionNamespace = $namespace;
00063     }
00064     
00070     public function setFields($fields)
00071     {
00072         $this->_fields = $fields;
00073     }
00074     
00082     protected function _check ($username, $password)
00083     {
00084         // TODO $_SERVER['HTTP_HOST'] puede ser una variable por si quieren ofrecer autenticacion desde cualquier host indicado
00085         if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === FALSE){
00086             self::log('INTENTO HACK IP '.$_SERVER['HTTP_REFERER']);
00087             $this->setError('Intento de Hack!');
00088             return FALSE;
00089         }
00090         
00091         // TODO: revisar seguridad
00092         $password = hash($this->_algos, $password);
00093         //$username = addslashes($username);
00094         $username = filter_var($username, FILTER_SANITIZE_MAGIC_QUOTES);
00095         
00096         $Model = Load::model($this->_model);
00097         if ($user = $Model->find_first("$this->_login = '$username' AND $this->_pass = '$password'")) {
00098             // Carga los atributos indicados en sesion
00099             foreach($this->_fields as $field) {
00100                 Session::set($field, $user->$field, $this->_sessionNamespace);
00101             }
00102             
00103             Session::set($this->_key, TRUE);
00104             return TRUE;
00105         }
00106         
00107         $this->setError('Error Login!');
00108         Session::set($this->_key, FALSE);
00109         return FALSE;
00110     }
00111 }
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Enumeraciones