Commit 43226f74 authored by David Surville's avatar David Surville
Browse files

[Tac] Ajout d'un paramètre "form_skip" qui permet de sauter la page...

[Tac] Ajout d'un paramètre "form_skip" qui permet de sauter la page d'authentification "/auth/connexion" si on utilise qu'une seule source d'authentification
Ce paramètre n'est pas utilisable pour une authentification locale.
parent 1c8403ca
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -102,6 +102,11 @@ $settings = [
         */
        'form' => CasLoginForm::class,

        /**
         * Permet de sauter le formulaire d'authentification "/auth/connexion" si CAS est la seule source d'authentification
         */
        'form_skip' => false,

        /**
         * Infos de connexion au serveur CAS.
         */
@@ -128,6 +133,9 @@ $settings = [

        'form' => LoginForm::class,

        /** /!\ Pas modifiable dans la conf local */
        'form_skip' => false,

        /**
         * Mode d'authentification à l'aide d'un compte dans la BDD de l'application.
         */
@@ -157,6 +165,11 @@ $settings = [
        'adapter' => Shib::class,
        'form' => ShibLoginForm::class,

        /**
         * Permet de sauter le formulaire d'authentification "/auth/connexion" si Shibboleth est la seule source d'authentification
         */
        'form_skip' => false,

        /**
         * URL de déconnexion.
         */
+14 −1
Original line number Diff line number Diff line
@@ -132,6 +132,19 @@ class AuthController extends AbstractActionController
            return $this->redirect()->toRoute(null, ['type' => $type], ['query' => $this->params()->fromQuery()], true);
        }

        $enabledAuthTypes = $this->moduleOptions->getEnabledAuthTypes();
        $authOptions = $this->moduleOptions->$type;

        /*
         * On saute (on va directement à authenticateAction()) le formulaire d'authentification "/auth/connexion" si :
         * - le type d'authentification utilisé est différent de 'local'
         * - un seul type d'authentification est activé dans la config (enabled = true)
         * - le paramètre "form_skip" est activé dans la config pour le type d'authentification utilisé (form_skip = true)
         */
        if($type != 'local' && count($enabledAuthTypes) === 1 && $authOptions['form_skip'] === true) {
            $this->redirect()->toRoute('zfcuser/authenticate', [], ['query' => $this->params()->fromQuery()], true);
        }

        $request = $this->getRequest();
        $form = $this->getLoginFormForType($type);
        $form->initFromRequest($request);
@@ -152,7 +165,7 @@ class AuthController extends AbstractActionController

        if (!$request->isPost()) {
            return array(
                'types' => $this->moduleOptions->getEnabledAuthTypes(),
                'types' => $enabledAuthTypes,
                'type' => $type,
                'loginForm' => $form,
                'forms' => $this->loginFormForType,