Neos\Neos\Service\BackendRedirectionService::getAfterLoginRedirectionUri PHP Метод

getAfterLoginRedirectionUri() публичный Метод

Returns a specific URI string to redirect to after the login; or NULL if there is none.
public getAfterLoginRedirectionUri ( ActionRequest $actionRequest ) : string
$actionRequest Neos\Flow\Mvc\ActionRequest
Результат string
    public function getAfterLoginRedirectionUri(ActionRequest $actionRequest)
    {
        $user = $this->userService->getBackendUser();
        if ($user === null) {
            return null;
        }
        $workspaceName = $this->userService->getUserWorkspaceName();
        $this->createWorkspaceAndRootNodeIfNecessary($workspaceName);
        $uriBuilder = new UriBuilder();
        $uriBuilder->setRequest($actionRequest);
        $uriBuilder->setFormat('html');
        $uriBuilder->setCreateAbsoluteUri(true);
        $contentContext = $this->createContext($workspaceName);
        $lastVisitedNode = $this->getLastVisitedNode($workspaceName);
        if ($lastVisitedNode !== null) {
            return $uriBuilder->uriFor('show', array('node' => $lastVisitedNode), 'Frontend\\Node', 'Neos.Neos');
        }
        return $uriBuilder->uriFor('show', array('node' => $contentContext->getCurrentSiteNode()), 'Frontend\\Node', 'Neos.Neos');
    }

Usage Example

 /**
  * Default action of the backend controller.
  *
  * @return void
  */
 public function indexAction()
 {
     $redirectionUri = $this->backendRedirectionService->getAfterLoginRedirectionUri($this->request);
     if ($redirectionUri === null) {
         $redirectionUri = $this->uriBuilder->uriFor('index', array(), 'Login', 'Neos.Neos');
     }
     $this->redirectToUri($redirectionUri);
 }