public function loginAction() { //Verficamos si existe ya una session activa if (!SessionManager::sessionExist()) { $this->layout('layout/layout_auth'); //Almacenamos la ruta redirect //$reditect_url = $this->params()->fromRoute('redirect_url') && $this->params()->fromRoute('redirect_url')!='/login ' ? $this->params()->fromRoute('redirect_url') : '/'; $message = null; //Instanciamos nuestro loginForm $loginForm = new LoginForm(); $request = $this->getRequest(); if ($request->isPost()) { //Instanciamos nuestro filtro $loginFilter = new LoginFilter(); $loginForm->setInputFilter($loginFilter->getInputFilter()); $loginForm->setData($request->getPost()); if ($loginForm->isValid()) { $empleadoQuery = new EmpleadoQuery(); //Si los datos del formulario son correctos ahora hacemos la busqueda a la db $credentialIsValid = $empleadoQuery->filterByEmpleadoNombreusuario($loginForm->get('empleado_nombreusuario')->getValue())->filterByEmpleadoPassword(md5($loginForm->get('empleado_password')->getValue()))->exists(); if ($credentialIsValid) { //Creamos la sesion //Obtenemos el objeto empleado $empleado = $empleadoQuery->findOneByEmpleadoNombreusuario($loginForm->get('empleado_nombreusuario')->getValue()); //El rol $empleado_rol = $empleado->getRol()->getRolNombre(); //El Acl $empleado_aclCollection = \RolmoduloQuery::create()->filterByIdrol($empleado->getIdRol())->find(); $empleado_acl = array(); foreach ($empleado_aclCollection as $modulo) { $moduloNombre = \ModuloQuery::create()->findOneByIdmodulo($modulo->getIdModulo())->getModuloNombre(); array_push($empleado_acl, $moduloNombre); } $empleadoArray = $empleado->toArray(\BasePeer::TYPE_FIELDNAME); //Removemos idrol y password ya que son datos que no necesitamos en la session unset($empleadoArray['idrol']); unset($empleadoArray['empleado_password']); $empleado_session = array('empleado_info' => $empleadoArray, 'empleado_rol' => $empleado_rol, 'empleado_acl' => $empleado_acl); SessionManager::init($empleado_session); return $this->redirect()->toUrl('/'); } else { $message = "Nombre de usuario y/o contraseña incorrecta"; } } } return new ViewModel(array('form' => $loginForm, 'message' => $message)); } else { return $this->redirect()->toUrl('/'); } }
public function loginAction() { $form = new LoginForm(); $form->get('submit')->setValue('Login'); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { // Redirect to list of albums return $this->redirect()->toRoute('album'); } } return array('form' => $form); }
public function loginAction() { $form = new LoginForm(); $form->get('submit')->setValue('Login'); $messages = null; $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter(new LoginFilter($this->getServiceLocator())); $form->setData($request->getPost()); if ($form->isValid()) { $data = $form->getData(); // $data = $this->getRequest()->getPost(); // If you used another name for the authentication service, change it here // it simply returns the Doctrine Auth. This is all it does. lets first create the connection to the DB and the Entity $authService = $this->getServiceLocator()->get('Zend\\Authentication\\AuthenticationService'); // Do the same you did for the ordinar Zend AuthService $adapter = $authService->getAdapter(); $adapter->setIdentityValue($data['username']); $adapter->setCredentialValue($data['password']); $authResult = $authService->authenticate(); if ($authResult->isValid()) { $identity = $authResult->getIdentity(); $authService->getStorage()->write($identity); $time = 1209600; // 14 days 1209600/3600 = 336 hours => 336/24 = 14 days if ($data['rememberme']) { $sessionManager = new \Zend\Session\SessionManager(); $sessionManager->rememberMe($time); } return $this->redirect()->toRoute('cms/default', array('controller' => 'user', 'action' => 'index')); } foreach ($authResult->getMessages() as $message) { $messages .= "{$message}\n"; } } } return new ViewModel(array('error' => 'Your authentication credentials are not valid', 'form' => $form, 'messages' => $messages)); }