簡體   English   中英

Typo3 Neos:向不同訪問級別的登錄用戶顯示不同的菜單項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM