2015-04-08 2 views
0

Мы создаем форум, в котором доступ должен быть запрещен незарегистрированными пользователями. Я хочу показать правильное сообщение об ошибке - не исключение - для пользователей, которые там не разрешены. Как достичь этого в Neos 2.0?Как я могу показать пользовательскую страницу 404, когда доступ запрещен узлу или методу в Neos?

Запрещается доступ к чтению и записи. Может быть, проще лишить доступ к узлу, где находится форум? Но не требуется ли жесткое кодирование пути узла?

Текущий Policy.yaml:

privilegeTargets: 

    'TYPO3\Flow\Security\Authorization\Privilege\Method\MethodPrivilege': 

    'My.Package:PostControllerLoggedInActions': 
     matcher: 'method(My\Package\PostController->(index|new|create)Action(.*))' 

roles: 

    'TYPO3.Flow:Everybody': 
    privileges: 
     - 
     privilegeTarget: 'My.Package:PostControllerLoggedInActions' 
     permission: DENY 

    'My.Package:User': 
    privileges: 
     - 
     privilegeTarget: 'My.Package:PostControllerLoggedInActions' 
     permission: GRANT 

Edit: Вот некоторые слайды о (среди прочего), как создать пользовательскую страницу 404: https://speakerdeck.com/aertmann/tasty-recipes-for-every-day-neos

Edit 2: Использование потока обработчика исключений ?

ответ

0

Вы можете попробовать установить его в корень Configuration/Settings.yaml. Вы можете сделать это по коду статуса (например, в примере) или классу исключений:

TYPO3: 
    Flow: 
# you have already persistence 
# and maybe other stuff under flow 
# just add it below them but still under TYPO3.Flow 
    error: 
     exceptionHandler: 
     renderingGroups: 
      accessRestricted: 
      matchingStatusCodes: [ 401, 403] 
      options: 
       templatePathAndFilename: 'resource://TYPO3.Neos/Private/Templates/Error/Index.html' 
       layoutRootPath: 'resource://TYPO3.Neos/Private/Layouts/' 
       format: 'html' 
       variables: 
       errorTitle: 'Restricted Area' 
       errorDescription: 'Go home boy.' 
+0

Прохладный, я попробую это. Благодаря! –

+0

Эта работа, @ OlleHärstedt? Если да, примите этот вопрос. – lorenz

Смежные вопросы