예제 #1
0
 public static function Process($mResult)
 {
     $sSocialRedirect = '';
     if (isset($_COOKIE["SocialRedirect"])) {
         $sSocialRedirect = $_COOKIE["SocialRedirect"];
         @setcookie('SocialRedirect', null);
     }
     if ($sSocialRedirect === 'helpdesk') {
         self::SetValuesToCookie($mResult);
         $sTenantHash = self::GetTenantHashFromCookie();
         if ($sTenantHash) {
             \CApi::Location('./?helpdesk=' . $sTenantHash);
         } else {
             \CApi::Location('./?helpdesk');
         }
     } else {
         $oAccount = \api_Utils::GetDefaultAccount();
         if ($oAccount) {
             $oApiSocial = \CApi::Manager('social');
             $oSocial = new \CSocial();
             $oSocial->IdAccount = $oAccount->IdAccount;
             switch ($mResult['type']) {
                 case 'google':
                     $oSocial->Type = \ESocialType::Google;
                     $oSocial->AccessToken = $mResult['access_token'];
                     $oSocial->RefreshToken = $mResult['refresh_token'];
                     break;
                 case 'dropbox':
                     $oSocial->Type = \ESocialType::Dropbox;
                     $oSocial->AccessToken = $mResult['access_token'];
                     break;
             }
             $oSocial->IdSocial = $mResult['id'];
             $oSocial->Name = $mResult['name'];
             $bCreateResult = $oApiSocial->CreateSocial($oSocial);
             echo "<script>" . "if (typeof(window.opener.servicesSettingsViewModelCallback) !== 'undefined')" . "{" . "window.opener.servicesSettingsViewModelCallback('" . $mResult['type'] . "', " . $bCreateResult . ");" . "window.close();" . "}" . "</script>";
         }
     }
 }
예제 #2
0
 public function AjaxSocialAccountListGet()
 {
     $mResult['Result'] = false;
     $oTenant = null;
     $oAccount = \api_Utils::GetDefaultAccount();
     $oApiTenants = \CApi::Manager('tenants');
     if ($oAccount && $oApiTenants) {
         $oTenant = 0 < $oAccount->IdTenant ? $oApiTenants->getTenantById($oAccount->IdTenant) : $oApiTenants->getDefaultGlobalTenant();
     }
     if ($oTenant) {
         $oApiSocial = \CApi::Manager('social');
         $mResult['Result'] = $oApiSocial->getSocials($oAccount->IdAccount);
     }
     return $mResult;
 }
예제 #3
0
 public static function Process($mResult)
 {
     $sSocialRedirect = '';
     if (isset($_COOKIE["SocialRedirect"])) {
         $sSocialRedirect = $_COOKIE["SocialRedirect"];
         @setcookie('SocialRedirect', null);
     }
     if ($sSocialRedirect === 'helpdesk') {
         self::SetValuesToCookie($mResult);
         $sTenantHash = self::GetTenantHashFromCookie();
         if ($sTenantHash) {
             \CApi::Location('./?helpdesk=' . $sTenantHash);
         } else {
             \CApi::Location('./?helpdesk');
         }
     } else {
         $oAccount = \api_Utils::GetDefaultAccount();
         $oApiSocial = \CApi::Manager('social');
         $oSocial = new \CSocial();
         switch ($mResult['type']) {
             case 'google':
                 $oSocial->Type = \ESocialType::Google;
                 $oSocial->AccessToken = $mResult['access_token'];
                 $oSocial->RefreshToken = $mResult['refresh_token'];
                 break;
             case 'dropbox':
                 $oSocial->Type = \ESocialType::Dropbox;
                 $oSocial->AccessToken = $mResult['access_token'];
                 break;
         }
         $oSocial->IdSocial = $mResult['id'];
         $oSocial->Name = $mResult['name'];
         if ($sSocialRedirect === 'login') {
             $oSocial->Scopes = 'LOGIN';
             $oApiUsers = \CApi::Manager('users');
             if (!$oApiSocial->SocialExists($oSocial->Type, $oSocial->IdSocial)) {
                 $oAccount = $oApiUsers->GetAccountOnLogin($mResult['email']);
                 if ($oAccount) {
                     $oSocial->IdAccount = $oAccount->IdAccount;
                     $oApiSocial->CreateSocial($oSocial);
                 } else {
                     // Account does not exist
                 }
             } else {
                 $oSocial = $oApiSocial->GetSocialById($oSocial->IdSocial, $oSocial->Type);
                 if ($oSocial && $oSocial->IssetScope('auth')) {
                     $oAccount = $oApiUsers->GetAccountById($oSocial->IdAccount);
                 } else {
                     // Account already exist
                 }
             }
             $oApiIntegrator = \CApi::Manager('integrator');
             $oApiIntegrator->SetAccountAsLoggedIn($oAccount, true);
             \CApi::Location('./');
         } else {
             if ($oAccount) {
                 $oSocial->IdAccount = $oAccount->IdAccount;
                 $bCreateResult = $oApiSocial->CreateSocial($oSocial);
                 echo "<script>" . "if (typeof(window.opener.servicesSettingsViewModelCallback) !== 'undefined')" . "{" . "window.opener.servicesSettingsViewModelCallback('" . $mResult['type'] . "', " . $bCreateResult . ");" . "window.close();" . "}" . "</script>";
             }
         }
     }
 }