Silverstripe 4: вход в систему и перенаправление на определенную страницу - PullRequest
0 голосов
/ 02 октября 2018

Я хотел бы перенаправить пользователей, которые успешно вошли на определенные страницы в зависимости от группы, к которой они принадлежат.

В прошлом я мог делать это в SS3 с помощью следующего:

CustomLoginForm.php:

class CustomLoginForm extends MemberLoginForm
{

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

/ mysite / _config.yml:

Injector:
  MemberLoginForm:
    class: CustomLoginForm

Однако этоПодход не работает Silverstripe 4.

Я пытался:

  • Как и выше, создание CustomLoginForm , расширяющее MemberLoginForm , определяющее doLogin() и применение его с помощью инжектора
  • Создание CustomLoginHandler , расширяющего LoginHander , определение redirectAfterSuccessfulLogin() и применение этого с помощью инжектора

Ни один из этих методов не сработал.

Я застрял в том, как подойти к этому на SS4, и был бы признателен за любые рекомендации!

1 Ответ

0 голосов
/ 03 октября 2018

Решил это, используя следующий подход:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...