diff --git a/datamodels/2.x/itop-oauth-client/assets/js/oauth_connect.js b/datamodels/2.x/itop-oauth-client/assets/js/oauth_connect.js index 4cc1c85d1..35dc4f391 100644 --- a/datamodels/2.x/itop-oauth-client/assets/js/oauth_connect.js +++ b/datamodels/2.x/itop-oauth-client/assets/js/oauth_connect.js @@ -92,6 +92,8 @@ const OAuthConnect = function(sClass, sId, sAjaxUri) { function (oData) { if (oData.status === 'success') { oOpenSignInWindow(oData.data.authorization_url, 'OAuth authorization') + } else { + alert(oData.error_description); } } ); diff --git a/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php b/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php index 4ec94b2f6..bfb47282b 100644 --- a/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php +++ b/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php @@ -10,6 +10,7 @@ use cmdbAbstractObject; use Combodo\iTop\Application\TwigBase\Controller\Controller; use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory; use Dict; +use Exception; use IssueLog; use League\OAuth2\Client\Provider\Exception\IdentityProviderException; use MetaModel; @@ -31,8 +32,13 @@ class AjaxOauthClientController extends Controller $aResult = ['status' => 'success', 'data' => []]; - $sAuthorizationUrl = OAuthClientProviderFactory::GetAuthorizationUrl($oOAuthClient); - $aResult['data']['authorization_url'] = $sAuthorizationUrl; + try { + $sAuthorizationUrl = OAuthClientProviderFactory::GetAuthorizationUrl($oOAuthClient); + $aResult['data']['authorization_url'] = $sAuthorizationUrl; + } catch (Exception $oException) { + $aResult['status'] = 'error'; + $aResult['error_description'] = $oException->getMessage(); + } $this->DisplayJSONPage($aResult); }