/** * 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'); }