2021-07-27 10:16:10 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
use Models\Module;
|
|
|
|
use Modules\Emails\Account;
|
|
|
|
use Modules\Emails\OAuth2;
|
|
|
|
|
|
|
|
$skip_permissions = true;
|
|
|
|
include_once __DIR__.'/core.php';
|
|
|
|
session_write_close();
|
|
|
|
|
|
|
|
// Authorization information
|
|
|
|
$state = $_GET['state'];
|
|
|
|
$code = $_GET['code'];
|
|
|
|
|
|
|
|
// Account individuato via oauth2_state
|
|
|
|
if (!empty($state)) {
|
|
|
|
$account = Account::where('oauth2_state', '=', $state)
|
|
|
|
->first();
|
|
|
|
} else {
|
|
|
|
$account = Account::find(get('id_account'));
|
|
|
|
|
|
|
|
// Impostazione access token a null per reimpostare la configurazione
|
|
|
|
$account->access_token = null;
|
2021-07-27 14:49:18 +02:00
|
|
|
$account->refresh_token = null;
|
2021-07-27 10:16:10 +02:00
|
|
|
$account->save();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($account)) {
|
|
|
|
echo tr('Errore durante il completamento della configurazione: account non trovato');
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Inizializzazione
|
2021-07-27 14:49:18 +02:00
|
|
|
$oauth2 = new OAuth2($account);
|
2021-07-27 10:16:10 +02:00
|
|
|
|
|
|
|
// Redirect all'URL di autorizzazione del servizio esterno
|
2021-07-27 14:49:18 +02:00
|
|
|
$redirect = $oauth2->configure($code, $state);
|
2021-07-27 10:16:10 +02:00
|
|
|
|
|
|
|
// Redirect automatico al record
|
|
|
|
if (empty($redirect)) {
|
|
|
|
$modulo_account_email = Module::pool('Account email');
|
|
|
|
$redirect = base_path().'/editor.php?id_module='.$modulo_account_email->id.'&id_record='.$account->id;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (empty($_GET['error'])) {
|
|
|
|
redirect($redirect);
|
|
|
|
exit();
|
|
|
|
} else {
|
|
|
|
echo $_GET['error'].'<br>'.$_GET['error_description'].'
|
|
|
|
<br><br>
|
|
|
|
<a href="'.$redirect.'">'.tr('Riprova').'</a>';
|
|
|
|
}
|