Кастомизированные ссылки в gsp - PullRequest
0 голосов
/ 08 февраля 2012

В моем приложении 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 ролика, которые я указал в Config.groovy для отображения в видессылка на странице просмотра.но у меня есть много пользователей с разными ролями, такими как

ROLE_PM
ROLE_SALES/BDM
ROLE_TEAMMEMBER
ROLE_ADMIN

, и мое требование заключается в том, что если пользователь с правами администратора входит в систему, то он может просматривать все контроллеры как ссылку (кроме 4), но если пользовательпри входе в систему с ролью PM он не может просматривать ссылки CustomerController и QuotationCotroller.так как я могу настроить свой main.gsp для отображения ссылок меню в зависимости от роли пользователя.Thnks

1 Ответ

1 голос
/ 08 февраля 2012

Попробуйте использовать весенний плагин безопасности . Есть теги для того, чтобы делать именно то, что вы хотите.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...