/** * Method to login the user on the application * * @return void */ public function loginAction() { $viewData = array(); $flashMessenger = $this->flashMessenger(); $loginForm = new LoginForm(); $loginForm->setAttribute('action', $this->url()->fromRoute('users-login')); $request = $this->getRequest(); if ($request->isPost()) { $data = $request->getPost()->toArray(); $loginForm->setInputFilter(User::getLoginInputFilter()); $loginForm->setData($data); if ($loginForm->isValid()) { $data = $loginForm->getData(); $auth = new AuthenticationService(); $authAdapter = new AuthAdapter($data['username'], $data['password']); $result = $auth->authenticate($authAdapter); if (!$result->isValid()) { foreach ($result->getMessages() as $msg) { $flashMessenger->addMessage($msg); } } else { return $this->redirect()->toRoute('wall', array('username' => $data['username'])); } } } $viewData['loginForm'] = $loginForm; if ($flashMessenger->hasMessages()) { $viewData['flashMessages'] = $flashMessenger->getMessages(); } return $viewData; }