/** * Route shutdown hook -- Check for router exceptions * * @param Zend_Controller_Request_Abstract $request */ public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); $orgService = \Application\Service\OrgService::getInstance(); $identity = $auth->getIdentity(); //Bypass other auth methods if ($identity['authType'] != App_Controller_Plugin_Auth::AUTH_TYPE_AUTH_TOKEN) { return; } $front = Zend_Controller_Front::getInstance(); $bs = $front->getParam('bootstrap'); // Fetch logs and apply the token to them $multilog = $bs->getPluginResource('multiplelog'); if (empty($identity['impersonation']) || empty($identity['impersonation']['orgId'])) { return; } $orgId = $identity['impersonation']['orgId']; $userSrv = UserService::getInstance(); \App::log()->info($identity['username'] . " is running as " . $orgId . " admin"); $user = $userSrv->loadByUsername($identity['username']); $userSrv->generateImpersonatedUser($user, $identity['impersonation']); foreach ($multilog->getLogs() as $log) { $log->setEventItem('impersonated', "as {$orgId} admin"); $log->setEventItem('impersonatedOrgId', "{$orgId}"); $log->setEventItem('username', $identity['username'] . " as {$orgId} admin"); } // Application\Model\Mapper\ProtoAbstractMapper::$accountingUserId .= "_impersonated"; Application\Model\Mapper\ProtoAbstractMapper::$organizationId = $orgId; App_ListFilter::addDefaultExtraData('impersonated_org', $orgId); $org = OrgService::getInstance()->load($orgId); \App::getOrgUserLogged($org); }
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $auth = Zend_Auth::getInstance(); $identity = $auth->getIdentity(); $byPassMethods = array(App_Controller_Plugin_Auth::AUTH_TYPE_LOST_PASSWORD, App_Controller_Plugin_Auth::AUTH_TYPE_ASYNC, App_Controller_Plugin_Auth::AUTH_TYPE_EXTERNAL, App_Controller_Plugin_Auth::AUTH_TYPE_THIRD_PARTY); //Bypass some auth methods if ($identity['authType'] && in_array($identity['authType'], $byPassMethods)) { return; } $user = App::getUserLogged(); $org = App::getOrgUserLogged(); App_ListFilter::addDefaultExtraData('user', $user->getUserName()); }
public static function generateToken($userName, $orgId, $language = 'en') { // Get tracking token $tracking = self::_getResource("trackingtoken"); if (!$tracking) { return; } // Fetch logs and apply the token to them $multilog = self::_getResource('multiplelog'); foreach ($multilog->getLogs() as $log) { $log->setEventItem('token', $tracking->getToken()); } //TODO Why is it here??? // Refactor: move it to helper Application\Model\Mapper\ProtoAbstractMapper::$accountingTransactionPrefix = $tracking->getToken() . '-'; Application\Model\Mapper\ProtoAbstractMapper::$accountingUserId = $userName; Application\Model\Mapper\ProtoAbstractMapper::$language = $language; Application\Model\Mapper\AbstractMapper::$organizationId = $orgId; App_ListFilter::addDefaultExtraData('user', $userName); }