/**
  * Erstellt einen neuen Account der an eine Session gebunden ist
  * @return array
  */
 public function createAccount()
 {
     $logicAccount = new DragonX_Account_Logic_Account();
     $logicSession = new DragonX_Account_Logic_Session();
     $sessionhash = $logicSession->loginAccount($logicAccount->createAccount());
     return array('sessionhash' => $sessionhash);
 }
 /**
  * Führt den Cronjob aus
  */
 public function execute()
 {
     $configSession = new Dragon_Application_Config('dragonx/account/session');
     $listSessions = Zend_Registry::get('DragonX_Storage_Engine')->loadBySqlStatement(new DragonX_Account_Record_Session(), "SELECT * FROM `dragonx_account_record_session` WHERE `created` IS NOT NULL AND `created` <= :timestamp", array('timestamp' => time() - $configSession->lifetime));
     $logicAccount = new DragonX_Account_Logic_Account();
     foreach ($listSessions as $recordSession) {
         $logicAccount->logoutAccount($recordSession->sessionhash);
     }
 }
 /**
  * Prüft bei jedem Request die Authentifizierung
  * @param Dragon_Json_Server_Request_Http $request
  */
 public function preDispatch(Dragon_Json_Server_Request_Http $request)
 {
     list($classname, $methodname) = $request->parseMethod();
     if (!$this->_authenticateRequired($classname, $methodname)) {
         return;
     }
     $params = $request->getRequiredParams(array('sessionhash'));
     $logicSession = new DragonX_Account_Logic_Session();
     $recordAccount = $logicSession->getAccount($params['sessionhash']);
     $logicAccount = new DragonX_Account_Logic_Account();
     $logicAccount->requestAccount($recordAccount);
     Zend_Registry::get('Dragon_Plugin_Registry')->invoke('DragonX_Account_Plugin_LoadAccount_Interface', array($recordAccount));
     Zend_Registry::set('recordAccount', $recordAccount);
 }
 /**
  * Registriert einen Account mit der E-Mail Adresse und dem Passwort
  */
 public function registerAction()
 {
     try {
         $params = $this->getRequiredParams(array('emailaddress', 'password'));
         $logicAccount = new DragonX_Account_Logic_Account();
         $recordAccount = $logicAccount->createAccount();
         $logicEmailaddress = new DragonX_Emailaddress_Logic_Emailaddress();
         $configValidation = new Dragon_Application_Config('dragonx/emailaddress/validation');
         $logicEmailaddress->linkAccount($recordAccount, $params['emailaddress'], $params['password'], $configValidation->validationlink, $configValidation->hashmethod);
         $logicSession = new DragonX_Account_Logic_Session();
         $sessionNamespace = new Zend_Session_Namespace();
         $sessionNamespace->sessionhash = $logicSession->loginAccount($recordAccount);
     } catch (Exception $exception) {
         $this->_helper->FlashMessenger('<div class="alert alert-error">E-Mail Adresse nicht korrekt oder bereits vergeben</div>');
         $this->_redirect('account/showregister');
     }
     $this->_helper->FlashMessenger('<div class="alert alert-success">Registrierung erfolgreich</div>');
     $this->_redirect('administration');
 }