public function authenticateAction()
 {
     $authAttempts = new Users_Model_AuthAttempts();
     $attempt = $authAttempts->get();
     $form = new Users_Form_Login(null, $this->view->base, $attempt && $attempt->surpassedMaxAllowed());
     $formData = $this->_request->getPost();
     $form->populate($formData);
     if (!$form->isValid($formData)) {
         $this->_helper->FlashMessenger->addMessage($this->view->translate('Invalid credentials'));
         $this->_redirectToNormalConnection('');
     }
     $users = new Users_Model_Users();
     $result = $users->authenticate($this->_request->getPost('username'), $this->_config->yubikey->enabled && $this->_config->yubikey->force ? $this->_request->getPost('yubikey') : $this->_request->getPost('password'), false, $this->view);
     if ($result) {
         $user = $users->getUser();
         if ($attempt) {
             $attempt = $authAttempts->delete();
         }
         if ($user->role != Users_Model_User::ROLE_ADMIN && $this->underMaintenance) {
             Zend_Auth::getInstance()->clearIdentity();
             return $this->_redirectForMaintenance(true);
         }
     } else {
         if (!$attempt) {
             $authAttempts->create();
         } else {
             $attempt->addFailure();
             $attempt->save();
         }
         $this->_helper->FlashMessenger->addMessage($this->view->translate('Invalid credentials'));
     }
     $this->_redirectToNormalConnection('');
 }