Parcourir la source

Ticket #673 - Task №1

AntonLV il y a 9 ans
Parent
commit
73c355d144

+ 19 - 3
studio/classes/BxDolStudioOAuth.php

@@ -47,7 +47,7 @@ class BxDolStudioOAuth extends BxDolFactory
 
         $mixedResult = $this->authorize();
         if($mixedResult !== true)
-            return $mixedResult;
+            return $this->onAuthorizeFailed($mixedResult);
 
         $aItems = $this->fetch($aParams);
         if(is_null($aItems))
@@ -64,12 +64,28 @@ class BxDolStudioOAuth extends BxDolFactory
             return _t('_adm_err_oauth_empty_key_secret');
 
 		$mixedResult = $this->authorize();
-		if($mixedResult === true)
-			BxDolStudioInstallerUtils::getInstance()->checkModules(true);
+		if($mixedResult !== true)
+		    return $this->onAuthorizeFailed($mixedResult);
 
+        BxDolStudioInstallerUtils::getInstance()->checkModules(true);
         return $mixedResult;
     }
 
+    protected function onAuthorizeFailed($mixedResult)
+    {
+        if(is_string($mixedResult))
+            return MsgBox($mixedResult);
+
+        $bArray = is_array($mixedResult);
+        if($bArray && !empty($mixedResult['redirect'])) {
+            header('Location: ' . $mixedResult['redirect']);
+            exit;
+        }
+
+        if($bArray && !empty($mixedResult['message']))
+            return MsgBox($mixedResult['message']);
+    }
+
     protected function isAuthorized()
     {
         return self::isAuthorizedClient();

+ 6 - 1
studio/classes/BxDolStudioOAuthLib.php

@@ -80,7 +80,12 @@ class BxDolStudioOAuthLib extends BxDolStudioOAuthOAuth1 implements iBxDolSingle
 			throw new OAuthException();
 
 		$this->oSession->setValue('sys_oauth_secret', $aRequestToken['oauth_token_secret']);
-		return _t('_adm_msg_oauth_need_authorize', bx_append_url_params(BX_DOL_OAUTH_URL_AUTHORIZE, array('oauth_token' => $aRequestToken['oauth_token'], 'sid' => bx_site_hash())));
+
+		$sUrl = bx_append_url_params(BX_DOL_OAUTH_URL_AUTHORIZE, array('oauth_token' => $aRequestToken['oauth_token'], 'sid' => bx_site_hash()));
+		return array(
+		    'redirect' => $sUrl, 
+		    'message' => _t('_adm_msg_oauth_need_authorize', $sRedirect)
+		);
     }
 
     protected function getAccessToken($sToken, $mixedSecret, $sVerifier, $iUser,  $oConsumer)

+ 4 - 1
studio/classes/BxDolStudioOAuthOAuth2.php

@@ -72,7 +72,10 @@ class BxDolStudioOAuthOAuth2 extends BxDolStudioOAuth implements iBxDolSingleton
 			'state' => $this->_genCsrfToken(),
 		));
 
-		return _t('_adm_msg_oauth_need_authorize', $sUrl);
+		return array(
+		    'redirect' => $sUrl, 
+		    'message' => _t('_adm_msg_oauth_need_authorize', $sUrl)
+		);
     }
 
     protected function getAccessToken($sCode)

+ 6 - 1
studio/classes/BxDolStudioOAuthPlugin.php

@@ -106,7 +106,12 @@ class BxDolStudioOAuthPlugin extends BxDolStudioOAuthOAuth1 implements iBxDolSin
 		$this->oSession->setValue('sys_oauth_secret', $oToken->getRequestTokenSecret());
 
 		$oUrl = $oService->getAuthorizationUri(array('oauth_token' => $oToken->getRequestToken()));
-		return _t('_adm_msg_oauth_need_authorize', bx_append_url_params($oUrl, array('sid' => bx_site_hash())));
+		$sUrl = bx_append_url_params($oUrl, array('sid' => bx_site_hash()));
+
+		return array(
+		    'redirect' => $sUrl, 
+		    'message' => _t('_adm_msg_oauth_need_authorize', $sUrl)
+		);
     }
 
     protected function getAccessToken($sToken, $sVerifier, $iUser,  $oService)

+ 19 - 22
studio/template/scripts/BxBaseStudioStore.php

@@ -109,10 +109,10 @@ class BxBaseStudioStore extends BxDolStudioStore
 	            $sContent .= $this->getBlockCode($aBlock);
 	        }
         }
-        else 
+        else
         	$sContent = $this->getBlockCode(array(
                 'caption' => '_adm_block_cpt_goodies',
-                'items' => MsgBox($mixedResult),
+                'items' => $mixedResult,
             ));
 
         return $oTemplate->parseHtmlByName('store.html', array(
@@ -148,10 +148,7 @@ class BxBaseStudioStore extends BxDolStudioStore
 	        ));
         }
         else 
-            $sContent = $this->getBlockCode(array(
-                'caption' => '_adm_block_cpt_featured',
-                'items' => MsgBox($mixedResult),
-            ));
+            $sContent = $mixedResult;
 
 		if(!$bWrapInBlock)
 			return $sContent;
@@ -249,28 +246,28 @@ class BxBaseStudioStore extends BxDolStudioStore
     	        ));
             }         
 
-            $sContent = $this->getBlockCode(array(
-    			'caption' => '_adm_block_cpt_search',
-    			'items' => $oTemplate->parseHtmlByName('str_search.html', array(
-                    'form' => $oForm->getCode(),
-                    'bx_if:show_results' => array(
-                        'condition' => !empty($sResults),
-                        'content' => array(
-                            'results' => $sResults
-                        )
+            $sContent = $oTemplate->parseHtmlByName('str_search.html', array(
+                'form' => $oForm->getCode(),
+                'bx_if:show_results' => array(
+                    'condition' => !empty($sResults),
+                    'content' => array(
+                        'results' => $sResults
                     )
-                ))
-    		));
+                )
+            ));
         }
         else 
-            $sContent = $this->getBlockCode(array(
-                'caption' => '_adm_block_cpt_search',
-                'items' => MsgBox($mixedResult),
-            ));
+            $sContent = $mixedResult;
+
+        if(!$bWrapInBlock)
+			return $sContent;
 
         return $oTemplate->parseHtmlByName('store.html', array(
             'js_object' => $sJsObject,
-            'content' => $sContent
+            'content' => $this->getBlockCode(array(
+				'caption' => '_adm_block_cpt_search',
+				'items' => $sContent
+			))
         ));
     }