diff --git a/plugin/azure_active_directory/lang/dutch.php b/plugin/azure_active_directory/lang/dutch.php index 6522b2e5be1..7f3e03e5631 100644 --- a/plugin/azure_active_directory/lang/dutch.php +++ b/plugin/azure_active_directory/lang/dutch.php @@ -34,3 +34,4 @@ $strings['group_id_session_admin_help'] = 'De groeps-ID voor sessiebeheerders. Indien leeg, wordt er automatisch geen gebruiker aangemaakt als sessiebeheerder.'; $strings['group_id_teacher'] = 'Groeps-ID voor docenten'; $strings['group_id_teacher_help'] = 'De groeps-ID voor docenten. Indien leeg, wordt er automatisch geen gebruiker aangemaakt als docent.'; +$strings['additional_interaction_required'] = 'Er is aanvullende interactie vereist om u te authenticeren. Log rechtstreeks in via uw authenticatiesysteem en kom dan terug naar deze pagina om in te loggen.'; diff --git a/plugin/azure_active_directory/lang/english.php b/plugin/azure_active_directory/lang/english.php index ed79623f067..5faf822a740 100644 --- a/plugin/azure_active_directory/lang/english.php +++ b/plugin/azure_active_directory/lang/english.php @@ -34,3 +34,4 @@ $strings['group_id_session_admin_help'] = 'The group ID for session admins. If empty, no user will be automatically created as session admin.'; $strings['group_id_teacher'] = 'Group ID for teachers'; $strings['group_id_teacher_help'] = 'The group ID for teachers. If empty, no user will be automatically created as teacher.'; +$strings['additional_interaction_required'] = 'Some additional interaction is required to authenticate you. Please login directly through your authentication system, then come back to this page to login.'; diff --git a/plugin/azure_active_directory/lang/french.php b/plugin/azure_active_directory/lang/french.php index c53f6648381..2fdb5480830 100644 --- a/plugin/azure_active_directory/lang/french.php +++ b/plugin/azure_active_directory/lang/french.php @@ -34,3 +34,4 @@ $strings['group_id_session_admin_help'] = 'The group ID for session admins. Si ce champ est laissé vide, aucun utilisateur ne sera créé en tant qu\'administrateur de sessions.'; $strings['group_id_teacher'] = 'ID du groupe enseignant'; $strings['group_id_teacher_help'] = 'The group ID for teachers. Si ce champ est laissé vide, aucun utilisateur ne sera créé en tant qu\'enseignant.'; +$strings['additional_interaction_required'] = 'Une interaction supplémentaire est nécessaire pour vous authentifier. Veuillez vous connecter directement auprès de votre système d\'authentification, puis revenir ici pour vous connecter.'; diff --git a/plugin/azure_active_directory/lang/spanish.php b/plugin/azure_active_directory/lang/spanish.php index 934b7f88646..b6aef5cd368 100644 --- a/plugin/azure_active_directory/lang/spanish.php +++ b/plugin/azure_active_directory/lang/spanish.php @@ -34,3 +34,4 @@ $strings['group_id_session_admin_help'] = 'El ID de grupo para administradores de sesiones. Si deja este campo vacío, ningún usuario será creado como administrador de sesiones.'; $strings['group_id_teacher'] = 'ID de grupo profesor'; $strings['group_id_teacher_help'] = 'El ID de grupo para profesores. Si deja este campo vacío, ningún usuario será creado como profesor.'; +$strings['additional_interaction_required'] = 'Alguna interacción adicional es necesaria para identificarlo/a. Por favor conéctese primero a través de su sistema de autenticación, luego regrese aquí para logearse.'; diff --git a/plugin/azure_active_directory/src/callback.php b/plugin/azure_active_directory/src/callback.php index a0dea33f096..08e140676e0 100644 --- a/plugin/azure_active_directory/src/callback.php +++ b/plugin/azure_active_directory/src/callback.php @@ -48,10 +48,21 @@ } // Try to get an access token (using the authorization code grant) -$token = $provider->getAccessToken('authorization_code', [ - 'code' => $_GET['code'], - 'resource' => 'https://graph.windows.net', -]); +try { + $token = $provider->getAccessToken('authorization_code', [ + 'code' => $_GET['code'], + 'resource' => 'https://graph.windows.net', + ]); +} catch (Exception $exception) { + if ($exception->getMessage() == 'interaction_required') { + $message = Display::return_message($plugin->get_lang('additional_interaction_required'), 'error', false); + } else { + $message = Display::return_message($exception->getMessage(), 'error'); + } + Display::addFlash($message); + header('Location: '.api_get_path(WEB_PATH)); + exit; +} $me = null;