2 votes

Silverstripe 4 : Connexion des membres et redirection vers une page spécifique

J'aimerais rediriger les membres qui se sont connectés avec succès vers des pages spécifiques en fonction du groupe auquel ils appartiennent.

Dans le passé, j'ai pu le faire dans SS3 en procédant comme suit :

CustomLoginForm.php :

class CustomLoginForm extends MemberLoginForm
{

    public function dologin($data)
    {
        // Redirect functionality here
    }
}

/mysite/_config.yml :

Injector:
  MemberLoginForm:
    class: CustomLoginForm

Cependant, cette approche ne fonctionne pas avec Silverstripe 4.

J'ai essayé :

  • Comme ci-dessus, la création d'un Formulaire de connexion personnalisé qui s'étend Formulaire de connexion des membres en définissant doLogin() et l'appliquer avec Injector
  • Créer un CustomLoginHandler qui s'étend LoginHander en définissant redirectAfterSuccessfulLogin() et l'appliquer avec Injector

Aucune de ces méthodes n'a fonctionné.

Je ne sais pas comment aborder cette question sur SS4, et j'apprécierais tout conseil !

4voto

pingu Points 312

J'ai résolu ce problème en utilisant l'approche suivante :

CustomLoginHander.php :

<?php

namespace MySite\Namespace\Extensions;

use SilverStripe\Security\MemberAuthenticator\LoginHandler;
use SilverStripe\Security\Security;

class CustomLoginHandler extends LoginHandler
{

    protected function redirectAfterSuccessfulLogin()
    {
        // Login redirect methods
    }
}

mysite.yml :

---
Name: myproject
---
SilverStripe\Core\Injector\Injector:
  SilverStripe\Security\MemberAuthenticator\LoginHandler:
    class: MySite\Namespace\Extensions\CustomLoginHandler

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X