Grails 普惠制中的定制链接

Grails 普惠制中的定制链接,grails,groovy,Grails,Groovy,我的grails应用程序中有一些控制器:- LoginController LogoutController SearchableController cirnele.SearchAllController com.ten.cirnelle.domain.CustomerController com.ten.cirnelle.domain.ProjectController com.ten.cirnelle.domain.PurchaseOrderController com.ten.cirne

我的grails应用程序中有一些控制器:-

LoginController
LogoutController
SearchableController
cirnele.SearchAllController
com.ten.cirnelle.domain.CustomerController
com.ten.cirnelle.domain.ProjectController
com.ten.cirnelle.domain.PurchaseOrderController
com.ten.cirnelle.domain.QuotationController
com.ten.cirnelle.domain.ResourceController
在Config.groovy中,我提供了一个配置:-

cirnelleControllerExclusions =['Login','Search','Searchable','Resource']
从main.gsp,我使用:-

<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">

    <g:if test="${grailsApplication.config.cirnelleControllerExclusions.contains(c.naturalName.split()[0]) == false}">

        <li class="controller"><g:link controller="${c.logicalPropertyName}">${c.naturalName.split()[0]}</g:link></li>
    </g:if>
</g:each>
我的要求是,如果用户具有管理员角色登录,那么他可以将所有控制器作为链接查看(除了4个),但是如果用户具有PM角色登录,那么他不能查看CustomerController链接和QuotationCotroller链接。 那么,如何根据用户角色定制main.gsp以显示菜单链接呢。 thnks

尝试使用。这里有一些标签,用于完全按照您的意愿进行操作

<sec:ifNotLoggedIn>
  <g:link controller="login" action="auth">Login</g:link>
</sec:ifNotLoggedIn>
<sec:ifAllGranted roles="ROLE_USER">
  <g:link class="create" controller="post" action="timeline">My Timeline</g:link>
</sec:ifAllGranted>

登录
我的时间表
<sec:ifNotLoggedIn>
  <g:link controller="login" action="auth">Login</g:link>
</sec:ifNotLoggedIn>
<sec:ifAllGranted roles="ROLE_USER">
  <g:link class="create" controller="post" action="timeline">My Timeline</g:link>
</sec:ifAllGranted>