Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/plugin/oauth2/index.php

46 lines
1.7 KiB

<?php
/* For licensing terms, see /license.txt */
/**
* @author Sébastien Ducoulombier <seb@ldd.fr>
* inspired by AzureActiveDirectory plugin from Angel Fernando Quiroz Campos <angel.quiroz@beeznest.com>
*
* @package chamilo.plugin.oauth2
*/
/** @var OAuth2 $oAuth2Plugin */
$oAuth2Plugin = OAuth2::create();
if ($oAuth2Plugin->get(OAuth2::SETTING_ENABLE) === 'true') {
$_template['block_title'] = $oAuth2Plugin->get(OAuth2::SETTING_BLOCK_NAME);
$_template['signin_url'] = $oAuth2Plugin->getSignInURL();
$managementLoginEnabled = 'true' === $oAuth2Plugin->get(OAuth2::SETTING_MANAGEMENT_LOGIN_ENABLE);
$_template['management_login_enabled'] = $managementLoginEnabled;
if ($managementLoginEnabled) {
$managementLoginName = $oAuth2Plugin->get(OAuth2::SETTING_MANAGEMENT_LOGIN_NAME);
if (empty($managementLoginName)) {
$managementLoginName = $oAuth2Plugin->get_lang('ManagementLogin');
}
$_template['management_login_name'] = $managementLoginName;
}
if (ChamiloSession::has('oauth2AccessToken')) {
$accessToken = new \League\OAuth2\Client\Token\AccessToken(ChamiloSession::read('oauth2AccessToken'));
if ($accessToken->hasExpired()) {
$provider = $oAuth2Plugin->getProvider();
try {
$newAccessToken = $provider->getAccessToken('refresh_token', [
'refresh_token' => $accessToken->getRefreshToken(),
]);
ChamiloSession::write('oauth2AccessToken', $newAccessToken->jsonSerialize());
} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $exception) {
online_logout();
}
}
}
}