2014-06-09 53 views
-2

我想根據用戶角色隱藏子菜單。我用dojo創建了一個菜單和子菜單。下面是代碼:根據角色禁用菜單項

menu.js:

pMenuBar.addChild(new PopupMenuBarItem({ 
     label: "Home", 
     popup: pSubMenu 
    })); 

回答

0

使用MenuItemdisabled屬性來控制它是否禁用,例如:

pSubMenu2.addChild(new MenuItem({ 
    label: "Withdraw", 
    disabled: true, // Menu item will be disabled 
    onClick:function(){ 
     window.location.href=contextPath+"/withdraw.htm" 
    } 
})); 

如何檢測,如果該機制您的用戶具有特定的角色取決於您。您可以提供用戶擁有的角色數組,並檢查特定角色是否在該數組中。

您也可以在服務器上設置truefalse,如果您使用Spring安全框架,您可以根據用戶的角色輕鬆在您的JSP中創建條件。

+0

我正在檢查彈簧控制器中的角色。我可以將它們存儲在java.util.List或Map中,以便用戶可以訪問多少個菜單項,但是如何檢查該條件以從上面顯示的彈簧控制器到「menu.js」頁面檢索那些「permissionID's」 Dimitri M. – user3684675

+0

那麼,如果你使用Spring MVC,你可以添加一些東西到你的模型中,例如:'model.add(「canWithdraw」,permissionIDs.contains(「withdraw_role」));'現在你可以使用'$ {canWithdraw}'根據用戶是否可以撤銷它來包含'true'或'false'的佔位符。 – g00glen00b

+0

我試過了,但無法在js文件中獲得「canWithdraw」。請在上面的帖子中查看我的代碼@Dimitri M. – user3684675