public static function getAuthenticatedUser($iUserId = '') { static $oUser = null; if ($oUser === null) { if (!empty($iUserId)) { \CApi::getAuthenticatedUserId($iUserId); // called for saving in session } else { if (!empty(self::$aUserSession['UserId'])) { $iUserId = self::$aUserSession['UserId']; } } $oApiIntegrator = \CApi::GetSystemManager('integrator'); if ($oApiIntegrator) { $oUser = $oApiIntegrator->getAuthenticatedUserByIdHelper($iUserId); } } return $oUser; }
/** * @return CAccount|null */ public function getAuthenticatedDefaultAccount($sAuthToken = '') { $oResult = null; $iUserId = \CApi::getAuthenticatedUserId($sAuthToken); if (0 < $iUserId) { $oApiUsers = CApi::GetSystemManager('users'); if ($oApiUsers) { $iAccountId = $oApiUsers->getDefaultAccountId($iUserId); if (0 < $iAccountId) { $oAccount = $oApiUsers->getAccountById($iAccountId); $oResult = $oAccount instanceof \CAccount ? $oAccount : null; } } } else { $this->logoutAccount(); } return $oResult; }
/** * * @param string $sMethod * @param array $aArguments * @param boolean $bWebApi * @return mixed */ public function CallMethod($sMethod, $aArguments = array(), $bWebApi = false) { $mResult = false; try { if (method_exists($this, $sMethod) && !($bWebApi && $this->isCallbackMethod($sMethod))) { if ($bWebApi && !isset($aArguments['UserId'])) { $aArguments['UserId'] = \CApi::getAuthenticatedUserId(); } // prepare arguments for before event $aMethodArgs = $this->prepareMethodArguments($sMethod, $aArguments, $bWebApi); $bEventResult = $this->broadcastEvent($sMethod . \AApiModule::$Delimiter . 'before', $aArguments, $mResult); // prepare arguments for main action after event $aMethodArgs = $this->prepareMethodArguments($sMethod, $aArguments, $bWebApi); if (!$bEventResult) { try { $mMethodResult = call_user_func_array(array($this, $sMethod), $aMethodArgs); if (is_array($mMethodResult) && is_array($mResult)) { $mResult = array_merge($mMethodResult, $mResult); } else { if ($mMethodResult !== null) { $mResult = $mMethodResult; } } } catch (\Exception $oException) { \CApi::GetModuleManager()->AddResult($this->GetName(), $sMethod, $mResult, $oException->getCode()); if (!$oException instanceof \System\Exceptions\AuroraApiException) { throw new \System\Exceptions\AuroraApiException($oException->getCode(), $oException, $oException->getMessage()); } else { throw $oException; } } } $this->broadcastEvent($sMethod . \AApiModule::$Delimiter . 'after', $aArguments, $mResult); \CApi::GetModuleManager()->AddResult($this->GetName(), $sMethod, $mResult); } } catch (\Exception $oException) { if (!$oException instanceof \System\Exceptions\AuroraApiException) { throw new \System\Exceptions\AuroraApiException($oException->getCode(), $oException, $oException->getMessage()); } else { throw $oException; } } return $mResult; }
/** * @return \CAccount | null */ public static function GetDefaultAccount() { $oResult = null; $oApiUsers = \CApi::GetSystemManager('users'); $oApiIntegrator = \CApi::GetSystemManager('integrator'); $iUserId = \CApi::getAuthenticatedUserId(); if (0 < $iUserId) { $iAccountId = $oApiUsers->getDefaultAccountId($iUserId); if (0 < $iAccountId) { $oAccount = $oApiUsers->getAccountById($iAccountId); if ($oAccount instanceof \CAccount && !$oAccount->IsDisabled) { $oResult = $oAccount; } } } return $oResult; }