2014-04-24 3 views
1

Neos 백엔드에서 메뉴를 만들었습니다. 각 메뉴 노드는 controlleraction의 플러그인에 해당합니다. 이러한 컨트롤러 작업은 흐름 액세스 정책 역할을 가진 리소스로 policy.yaml에 정의됩니다. 메뉴 템플릿은 Typo3.NeosDemoTypo3Org 패키지에서 복사 한 root.ts2에 정의되어 있습니다. root.ts2의Typo3 Neos : 다른 액세스 수준의 로그인 한 사용자에게 다른 메뉴 항목 표시

에는 mainMenu 부분은 MainMenu.html가

mainMenu = Menu { 
entryLevel = 1 
templatePath = 'resource://ABC.Demo/Private/Templates/TypoScriptObjects/MainMenu.html' 
maximumLevels = 3 
site = ${site} 
} 

입니다 :

<div class="collapse navbar-collapse navbar-main-collapse"> 
<ul class="nav nav-pills nav-justified"> 
<f:for each="{items}" as="item" iteration="menuItemIterator"> 
        <f:then> 
          <li class="active"> 
           <neos:link.node node="{item.node}">{item.label}</neos:link.node> 
          </li> 
         </f:then> 
         <f:else> 
          <li> 
           <neos:link.node node="{item.node}">{item.label}</neos:link.node> 
          </li> 
         </f:else> 
        </f:if> 
       </f:for> 
     </ul> 
    </div> 

내가 사용하는 경우 {parts.mainMenu -> F : format.raw()} 기본이다. html로 네오스 사이트의 루트에 정의 된 모든 메뉴 항목을 출력합니다.

사용자가 policy.yaml에 정의 된 해당 리소스에 액세스 할 수있는 웹 페이지의 기본 메뉴에 메뉴 항목 만 표시하려면 어떻게해야합니까?

누구나 아이디어를 얻을 수있는 방법을 제공합니다.

답변

2

페이지 노드에서 액세스 보호를 설정해야합니다. 현재이 인터페이스가 없지만 데이터베이스의 노드에 대한 액세스 역할을 정의 할 수 있습니다. 표 참조 : typo3_typo3cr_domain_model_nodedata 필드 액세스 롤 역할 이름의 일련 화 된 배열이어야합니다. 그러면 메뉴에 올바르게 반영됩니다. TYPO3.Neos : Editor 역할을 설정하는 것을 잊지 마세요. 그렇지 않으면 편집자는 해당 페이지를 수정할 수 없습니다.

각 페이지에서 플러그인을 가져오고 이에 대한 검사에 액세스하는 것은 매우 복잡 할 수 있지만 물론 다른 옵션 일 수 있습니다. 나는 노드 유형이 플러그인에 따라 각 페이지마다 다를 수 있기 때문에 당신에게 그 어떤 힌트도 당신에게 직접 줄 수는 없다.

+0

어디에 노드에 대한 액세스 역할을 설정할 수 있습니까? Neos 백엔드에서 새 페이지를 만들 때 '액세스 제어'를 볼 수 없습니다. – Desh

+0

마지막으로 나는 Sites.xml에 accessrole 속성을 설정하여 노드에 대한 액세스 권한을 얻었습니다. – Desh

+0

그래, 아직 사용자 인터페이스가 없습니다. 이 작업은 Sites.xml 또는 데이터베이스에서 수행해야합니다. 그러나 우리는 그것에 대해 연구하고 있습니다. – ChristianM