Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class ModelAuth extends AuthAdapter
- {
- /**
- * Modelo a utilizar para el proceso de autenticacion
- *
- * @var String
- */
- protected $_model = 'users';
- /**
- * Prefijo para campos cargados del modelo
- *
- * @var string
- */
- protected $_prefix = NULL;
- /**
- * Campos que se cargan del modelo
- *
- * @var array
- */
- protected $_fields = array('id');
- /**
- * Asigna el modelo a utilizar
- *
- * @param string $model nombre de modelo
- */
- public function setModel($model)
- {
- $this->_model = $model;
- }
- /**
- * Asigna el prefijo para los campos del modelo que se cargaran en sesion
- *
- * @param string $prefix prefijo para campos del modelo en sesion
- */
- public function setPrefix($prefix)
- {
- $this->_prefix = $prefix;
- }
- /**
- * Indica que campos del modelo se cargaran en sesion
- *
- * @param array $fields campos a cargar
- */
- public function setFields($fields)
- {
- $this->_fields = $fields;
- }
- /**
- * Check
- *
- * @param $username
- * @param $password
- * @return bool
- */
- protected function _check ($username, $password)
- {
- // TODO $_SERVER['HTTP_HOST'] puede ser una variable por si quieren ofrecer autenticacion desde cualquier host indicado
- if(strpos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === FALSE){
- self::log('INTENTO HACK IP '.$_SERVER['HTTP_REFERER']);
- $this->setError('Intento de Hack!');
- return FALSE;
- }
- // TODO: revisar seguridad
- $password = hash($this->_algos, $password);
- //$username = addslashes($username);
- $username = filter_var($username, FILTER_SANITIZE_MAGIC_QUOTES);
- $Model = Load::model($this->_model);
- if ($user = $Model->find_first("$this->_login = '$username' AND $this->_pass = '$password'")) {
- // Carga los atributos indicados en sesion
- foreach($this->_fields as $field) {
- Session::set("{$this->_prefix}$field", $user->$field);
- }
- Session::set($this->_key, TRUE);
- return TRUE;
- }
- $this->setError('Error Login!');
- Session::set($this->_key, FALSE);
- return FALSE;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement