Grails Shiro标记中的OR条件
我正在做一个两级菜单,如果用户有某些权限,我想显示一些条目 如果用户没有任何其他子菜单的权限,我不想显示菜单的第一级,因为它将显示一个空的结果列表 我将放一些代码来更好地解释它。这可能是菜单的一个示例:Grails Shiro标记中的OR条件,grails,tags,shiro,Grails,Tags,Shiro,我正在做一个两级菜单,如果用户有某些权限,我想显示一些条目 如果用户没有任何其他子菜单的权限,我不想显示菜单的第一级,因为它将显示一个空的结果列表 我将放一些代码来更好地解释它。这可能是菜单的一个示例: <ul> <shiro:hasPermission permission="foo"> <li> foo</li> </shiro:hasPermission> <shiro:hasPerm
<ul>
<shiro:hasPermission permission="foo">
<li> foo</li>
</shiro:hasPermission>
<shiro:hasPermission permission="bar">
<li> bar</li>
</shiro:hasPermission>
</ul>
有了这一点,您就可以做到这一点,有几种方法,但Shiro插件中的
hasAnyRole
标签可能是最简单的方法
<shiro:hasAnyRole in="foo,bar">
<ul>
<shiro:hasPermission permission="foo">
<li> foo</li>
</shiro:hasPermission>
<shiro:hasPermission permission="bar">
<li> bar</li>
</shiro:hasPermission>
</ul>
</shiro:hasAnyRole>
- 福
- 酒吧
有关更多信息,请查看标记库的
更新
根据提供的注释,还有另一个基于权限的选项
<g:set var="hasSomePermission" value="${false}" />
<shiro:hasPermission permission="foo">
<g:set var="hasSomePermission" value="${true}" />
</shiro:hasPermission>
<shiro:hasPermission permission="bar">
<g:set var="hasSomePermission" value="${true}" />
</shiro:hasPermission>
...
<g:if test="${hasSomePermission}">
...
</g:if>
...
...
Shiro插件不像角色那样为权限提供逻辑或标记,因此上面是另一种方法。使用同样的想法,您可以使用自己的标记库将其干涸。我现在就是这样做的,但我希望有一种方法可以仔细查看用户权限,而不是用户角色。类似hasAnyPermission的内容(不存在)
<g:set var="hasSomePermission" value="${false}" />
<shiro:hasPermission permission="foo">
<g:set var="hasSomePermission" value="${true}" />
</shiro:hasPermission>
<shiro:hasPermission permission="bar">
<g:set var="hasSomePermission" value="${true}" />
</shiro:hasPermission>
...
<g:if test="${hasSomePermission}">
...
</g:if>