当Neos中的节点或方法被拒绝访问时,我如何显示自定义404页面



我们正在制作一个论坛,未注册的用户应该拒绝访问。我想为不允许的用户显示一条正确的错误消息,而不是一个例外。如何在Neos 2.0中实现这一点?

读取和写入访问都应被拒绝。也许拒绝访问论坛所在的节点更容易?但这不需要对节点路径进行硬编码吗?

当前Policy.yaml:

privilegeTargets:
  'TYPO3FlowSecurityAuthorizationPrivilegeMethodMethodPrivilege':
    'My.Package:PostControllerLoggedInActions':
        matcher: 'method(MyPackagePostController->(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

编辑:以下是一些关于如何创建自定义404页面的幻灯片:https://speakerdeck.com/aertmann/tasty-recipes-for-every-day-neos

编辑2:是否使用流异常处理程序?

您可以尝试在根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.'

最新更新