public function AjaxHelpdeskLogin() { $sTenantHash = trim($this->getParamValue('TenantHash', '')); if ($this->oApiCapability->IsHelpdeskSupported()) { $sEmail = trim($this->getParamValue('Email', '')); $sPassword = trim($this->getParamValue('Password', '')); $bSignMe = '1' === (string) $this->getParamValue('SignMe', '0'); if (0 === strlen($sEmail) || 0 === strlen($sPassword)) { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::InvalidInputParameter); } $mIdTenant = $this->oApiIntegrator->GetTenantIdByHash($sTenantHash); if (!is_int($mIdTenant)) { throw new \ProjectSeven\Exceptions\ClientException(\ProjectSeven\Notifications::InvalidInputParameter); } try { $oHelpdeskUser = $this->oApiIntegrator->LoginToHelpdeskAccount($mIdTenant, $sEmail, $sPassword); if ($oHelpdeskUser && !$oHelpdeskUser->Blocked) { $this->oApiIntegrator->SetHelpdeskUserAsLoggedIn($oHelpdeskUser, $bSignMe); return $this->TrueResponse(null, __FUNCTION__); } } catch (\Exception $oException) { $iErrorCode = \ProjectSeven\Notifications::UnknownError; if ($oException instanceof \CApiManagerException) { switch ($oException->getCode()) { case \Errs::HelpdeskManager_AccountSystemAuthentication: $iErrorCode = \ProjectSeven\Notifications::HelpdeskSystemUserExists; break; case \Errs::HelpdeskManager_AccountAuthentication: $iErrorCode = \ProjectSeven\Notifications::AuthError; break; case \Errs::HelpdeskManager_UnactivatedUser: $iErrorCode = \ProjectSeven\Notifications::HelpdeskUnactivatedUser; break; case \Errs::Db_ExceptionError: $iErrorCode = \ProjectSeven\Notifications::DataBaseError; break; } } throw new \ProjectSeven\Exceptions\ClientException($iErrorCode); } } return $this->FalseResponse(null, __FUNCTION__); }