N°3169 - Add feature to connect Gsuite mail box with OAuth

N°2504 - Add feature to connect Office mail box with OAuth2 for Microsoft Graph
N°5102 - Allow to send emails (eg. notifications) using GSuite SMTP and OAuth
 * 2.7 migration (wip)
This commit is contained in:
Eric Espie
2022-05-13 11:37:09 +02:00
parent 4b870bcf1e
commit 134736dce5
563 changed files with 78319 additions and 235 deletions

View File

@@ -0,0 +1,26 @@
<?php
namespace Combodo\iTop\Controller\OAuth;
use Combodo\iTop\Application\TwigBase\Controller\Controller;
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory;
use utils;
class OAuthAjaxController extends Controller
{
public function OperationGetAuthorizationUrl()
{
$aResult = ['status' => 'success', 'data' => []];
$sProvider = utils::ReadParam('provider', '', false, 'raw');
$sClientId = utils::ReadParam('client_id', '', false, 'raw');
$sClientSecret = utils::ReadParam('client_secret', '', false, 'raw');
$sScope = utils::ReadParam('scope', '', false, 'raw');
$sAdditional = utils::ReadParam('additional', '', false, 'raw');
$aAdditional = [];
parse_str($sAdditional, $aAdditional);
$sAuthorizationUrl = OAuthClientProviderFactory::getVendorProviderForAccessUrl($sProvider, $sClientId, $sClientSecret, $sScope, $aAdditional);
$aResult['data']['authorization_url'] = $sAuthorizationUrl;
$this->DisplayJSONPage($aResult);
}
}

View File

@@ -8,25 +8,25 @@ namespace Combodo\iTop\Controller\OAuth;
use Combodo\iTop\Application\TwigBase\Controller\Controller;
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderAbstract;
use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientResultDisplayConf;
use Dict;
use utils;
class OAuthWizardController extends Controller
{
public function WizardOperation()
public function OperationWizard()
{
$aParams = [];
$aParams['sReturnUri'] = OAuthClientProviderAbstract::GetRedirectUri();
$aParams['sAjaxUri'] = utils::GetAbsoluteUrlAppRoot().'pages/oauth/ajax.wizard.php';
$aParams['sAjaxUri'] = utils::GetAbsoluteUrlAppRoot().'pages/ajax.oauth.wizard.php';
//$this->AddLinkedScript(utils::GetAbsoluteUrlAppRoot().'/js/pages/backoffice/oauth.wizard.js');
$aOAuthClasses = [
'Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderAzure',
'Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderGoogle',
];
foreach ($aOAuthClasses as $sOAuthClass) {
$aParams['aProviders'][] = [
'name' => $sOAuthClass::GetVendorName(),
@@ -43,6 +43,10 @@ class OAuthWizardController extends Controller
'redirect_uri' => ['type' => 'text', 'label' => Dict::S('UI:OAuth:Wizard:Form:Input:RedirectUri:Label'), 'read_only' => true, 'value' => OAuthClientProviderAbstract::GetRedirectUri()],
];
$aParams['aAdditionalBlocks'] = [
OAuthClientResultDisplayConf::GetResultDisplayTemplate(),
];
$this->DisplayPage($aParams);
}
}