[英]Typo3 Neos: show different Menu items to loggedin users of different access levels
我已經在Neos后端創建了菜單。 每個菜單節點對應一個controlleraction的插件。 這些控制器操作在policy.yaml中定義為具有其流訪問策略角色的資源。 菜單模板在root.ts2中定義,我從Typo3.NeosDemoTypo3Org包中獲取了一個副本。
root.ts2的mainMenu部分是
mainMenu = Menu {
entryLevel = 1
templatePath = 'resource://ABC.Demo/Private/Templates/TypoScriptObjects/MainMenu.html'
maximumLevels = 3
site = ${site}
}
MainMenu.html是:
<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>
如果在Default.html中使用{parts.mainMenu-> f:format.raw()},它將打印在Neos站點根目錄定義的所有菜單項。
我如何僅顯示網頁主菜單中用戶有權訪問policy.yaml中定義的相應資源的那些菜單項。
任何人都可以提出一個想法,以及實現它的方法。
您應該在頁面節點上設置訪問保護。 當前尚無此接口,但是您可以為數據庫中的節點定義訪問角色。 請參閱表:typo3_typo3cr_domain_model_nodedata字段訪問權限。 它應該是角色名稱的序列化數組。 然后,這將正確反映在菜單中。 並且不要忘記設置TYPO3.Neos:Editor角色,否則編輯者將無法修改這些頁面。
從每個頁面獲取插件並對其進行訪問檢查將是相當復雜的,但這當然是另一種選擇。 我不能直接為您提供任何提示,因為每個頁面的節點類型會有所不同,具體取決於插件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.