Feature/merge 3 0 develop (#298)

* merging 3.0 into develop

* N°5102 - Allow to send emails (eg. notifications) using GSuite SMTP and OAuth
* migration to iTop 3.1

Co-authored-by: Eric Espie <eric.espie@combodo.com>
This commit is contained in:
bdalsass
2022-06-08 16:27:20 +02:00
committed by GitHub
parent 1fd792fed9
commit 2b885beb82
347 changed files with 53400 additions and 3034 deletions

View File

@@ -0,0 +1,41 @@
<?php
namespace Combodo\iTop\Core\Authentication\Client\OAuth;
use League\OAuth2\Client\Provider\Google;
use League\OAuth2\Client\Token\AccessToken;
class OAuthClientProviderGoogle extends OAuthClientProviderAbstract
{
/** @var string */
static protected $sVendorName = 'Google';
/** @var array */
static protected $sVendorColors = ['#DB4437', '#F4B400', '#0F9D58', '#4285F4'];
/** @var string */
static protected $sVendorIcon = '../images/icons/icons8-google.svg';
/** @var \League\OAuth2\Client\Provider\GenericProvider */
protected $oVendorProvider;
/** @var \League\OAuth2\Client\Token\AccessToken */
protected $oAccessToken;
static protected $sRequiredSMTPScope = 'https://mail.google.com/';
static protected $sRequiredIMAPScope = 'https://mail.google.com/';
static protected $sRequiredPOPScope = 'https://mail.google.com/';
public function __construct($aVendorProvider, array $collaborators = [], array $aAccessTokenParams = [])
{
$this->oVendorProvider = new Google(array_merge(['prompt' => 'consent', 'accessType' => 'offline'], $aVendorProvider), $collaborators);
if (!empty($aAccessTokenParams)) {
$this->oAccessToken = new AccessToken([
"access_token" => $aAccessTokenParams["access_token"],
"expires_in" => -1,
"refresh_token" => $aAccessTokenParams["refresh_token"],
"token_type" => "Bearer",
]);
}
if (isset($aVendorProvider['scope'])) {
$this->SetScope($aVendorProvider['scope']);
}
}
}