/**
  * We will initially identify the user
  */
 function identify(CakeRequest $request, CakeResponse $response)
 {
     if (Configure::read('authType') == 'ldap') {
         $ldapUser = $this->_ldapAuth($request);
         //Busco el usuario de ldap, si me regresa un registro significa que su contrase?a y usuario son correctos
         if (!isset($ldapUser[0]['dn'])) {
             return false;
         }
         //Cargo el modelo para hacer la busqueda del usuario y ver si esta dado de alta en la aplicacion
         App::import('Model', $this->authenticate['Form']['userModel']);
         $model = new $this->authenticate['Form']['userModel']();
         $model->recursive = -1;
         //Unicamente traemos los datos de la tabla
         $usuario = $model->find('first', array('conditions' => array($this->authenticate['Form']['fields']['username'] => $request->data[$this->authenticate['Form']['userModel']][$this->authenticate['Form']['fields']['username']])));
         if (empty($usuario)) {
             return false;
         }
         //Guardaremos su contraseña actual en LDAP encriptada para que el identify funcione adecuadamente, ademas si por algun motivo el metodo de autenticacion cambia a BD, podran seguir usando su ultima contraseña de LDAP registrada
         $model->id = $usuario[$this->authenticate['Form']['userModel']][$model->primaryKey];
         $model->saveField($this->authenticate['Form']['fields']['password'], $request->data[$this->authenticate['Form']['userModel']][$this->authenticate['Form']['fields']['password']]);
         return parent::identify($request, $response);
     } else {
         return parent::identify($request, $response);
     }
 }
Exemple #2
0
 function identify($user = null, $conditions = null)
 {
     $models = array('Member');
     foreach ($models as $model) {
         $this->userModel = $model;
         // switch model
         $result = parent::identify($user, $conditions);
         // let cake do it's thing
         if ($result) {
             return $result;
             // login success
         }
     }
     return null;
     // login failure
 }