コード例 #1
0
 public function executeControlpanel(sfWebRequest $request)
 {
     //if que pregunte si la sesion esta iniciada, si no lo esta revisa el request que le llega, si lo esta recupera la info de la sesion.
     if ($this->getUser()->isAuthenticated()) {
         $usuario = Doctrine::getTable('Usuario')->findOneById($this->getUser()->getAttribute('num'));
         $this->usu = $usuario;
         /**
          *@todo falta agregar codigo para recuperar informacion relativa al usuario
          */
     } else {
         /**
          * Se crea un objeto tipo inicio de sesion y se compara con el que se recive, si no coincide, se deberia regresar al template anterior para que muestre los errores.
          */
         $formu = new InicioSesionForm();
         $formu->bind($request->getParameter($formu->getName()), $request->getFiles($formu->getName()));
         if ($formu->isValid()) {
             $usu = $request->getParameter('iniciosesion');
             $usuario = Doctrine::getTable('Usuario')->findOneByEmailAndClave($usu['email'], sha1($usu['clave']));
             /**
              * Se pregunta si el usuario existe, si no existe regresa a la pagina de registro y le informa
              */
             if ($usuario == null) {
                 $this->getUser()->setFlash('nousuario', 'Ha ingresado mal sus datos de acceso o no esta registrado,intente de nuevo o registrese por favor');
                 $this->redirect('user/noregistrado');
             } else {
                 $this->usu = $usuario;
                 $this->getUser()->setAuthenticated(true);
                 /*$query = Doctrine_Query::create()
                           ->from('Usuario u')
                           ->select('u.id as id, u.tipo as tipo')
                           ->where('u.email = ?', $usuario->getEmail());
                   $id = $query->fetchArray();*/
                 $this->getUser()->setAttribute('num', $usuario->getId());
                 /*Agrega credencial normal*/
                 $this->getUser()->addCredential('normal');
                 /**
                  *@todo falta agregar aqui para recuperar informacion del usuario
                  */
             }
         } else {
             $sss = $request->getParameter('usuario');
             $this->getUser()->setFlash('nousuario', 'Ha ingresado mal sus datos de acceso o no esta registrado,intente de nuevo o registrese por favor');
             //$this->setTemplate('noregistrado');
             $this->redirect('user/noregistrado');
         }
     }
 }
コード例 #2
0
 public function actionIniciarSesion()
 {
     $this->layout = 'sitio';
     $inicioSesionForm = new InicioSesionForm();
     if (isset($_POST['InicioSesionForm'])) {
         $inicioSesionForm->attributes = $_POST['InicioSesionForm'];
         if ($inicioSesionForm->validate()) {
             $cliente = Cliente::model()->find("cliente_email = '" . $_POST['InicioSesionForm']['email'] . "' and cliente_password = '******'InicioSesionForm']['password'] . "'");
             if (isset($cliente)) {
                 $_SESSION['Cliente']['cliente_id'] = $cliente->cliente_id;
                 $_SESSION['Cliente']['cliente_nombre'] = $cliente->cliente_nombre;
                 $_SESSION['Cliente']['cliente_ape_paterno'] = $cliente->cliente_ape_paterno;
                 $_SESSION['Cliente']['cliente_ape_materno'] = $cliente->cliente_ape_materno;
                 $_SESSION['Cliente']['cliente_email'] = $cliente->cliente_email;
                 $_SESSION['Cliente']['cliente_telefono'] = $cliente->cliente_telefono;
                 $_SESSION['Cliente']['cliente_telefono_movil'] = $cliente->cliente_telefono_movil;
                 $this->redirect('panelControlCliente');
             } else {
                 Yii::app()->user->setFlash('error', "Los datos ingresados no son correctos.");
             }
         }
     }
     $this->render('iniciarSesion', array('inicioSesionForm' => $inicioSesionForm));
 }