带有分析的Grails菜单

时间:2010-12-30 00:20:22

标签: security grails menu grails-plugin

有几个grails菜单插件,例如Navigation插件。我需要向用户显示他可以根据用户个人资料访问的菜单项。实现这一目标的最简单方法是什么?是否有可以与某些grails安全插件集成的菜单插件?

1 个答案:

答案 0 :(得分:2)

navigation plugin有一个使用isVisible来有条件地隐藏菜单项的示例。如果您正在使用Spring Security插件,那么您可以将其与SpringSecurityUtils或注入的SpringSecurityService bean上的方法结合使用:

def springSecurityService
// ...
static navigation = [
    [group:'userOptions', action:'login', order: 0, isVisible: { SpringSecurityUtils.ifAllGranted('ROLE_ADMIN') }],
    [action:'logout', order: 99, isVisible: { springSecurityService.isLoggedIn() }]
]

或者,Spring安全性附带some tags,仅当用户未登录,具有什么角色等时才会呈现标记正文,因此您可以像这样手动滚动菜单项:

<sec:ifAllGranted roles="ROLE_ADMIN">
  // Render <g:link../> to an admin page here.
</sec:ifAllGranted>