有几个 grails 菜单插件,例如 Navigation 插件。我只需要向用户显示他可以根据他的用户配置文件访问的那些菜单项。实现这一目标的最简单方法是什么?是否有可以与某些 grails 安全插件集成的菜单插件?
最佳答案
navigation plugin有一个使用 isVisible
的例子有条件地隐藏菜单项。如果您使用的是 Spring Security 插件,那么您可以将其与 SpringSecurityUtils 上的方法结合使用。或注入(inject) 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>
关于security - 带有分析的 Grails 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559044/