2016-05-12 23 views
0

我試圖給我的Config.groovy上的某些頁面添加一些限制,但我無法正確執行。如何將基於角色的限制添加到Grails的Config.groovy文件中?

我希望RoleType.ROLE_HR_ADMIN訪問索引和創建頁面。 雖然對於RoleType.ROLE_HR_READONLY,它應該只能訪問索引頁和顯示頁面。 我已經隱藏了該按鈕,因此用戶無法點擊它進入創建屏幕。但是,如果我獲得完整的網址,請將其複製並粘貼到瀏覽器中,我仍然可以訪問它。

這就是我試圖做的Config.groovy:

'/siteadmin/party/**': [RoleType.ROLE_SITE_ADMIN.id], 
     '/siteadmin/party/create/**': [RoleType.ROLE_HR_ADMIN.id], 
     '/siteadmin/party/index/**': [RoleType.ROLE_HR_ADMIN.id, RoleType.ROLE_HR_READONLY.id], 

但後來我發現了:

"Sorry, you're not authorized to view this page." 

如果有人可以給我展示如何正確地做一個鏈接這會很棒。 我嘗試了一些不同的方法,但都沒有工作。

回答

1

檢查了這一點:https://grails-plugins.github.io/grails-spring-security-core/v2/guide/requestMappings.html

尤其是看grails.plugin.springsecurity.interceptUrlMap

'/j_spring_security_switch_user': ['ROLE_ADMIN'] 

所以你的情況:

'/siteadmin/party/create/**': ['ROLE_HR_ADMIN'], 
'/siteadmin/party/index/**': ['ROLE_HR_ADMIN', 'ROLE_HR_READONLY'] 
'/siteadmin/party/**': ['ROLE_SITE_ADMIN'] 

訂購事宜。

+0

是啊......這一個工作...所以ROLE_SITE_ADMIN可以訪問所有頁面......但事情是,ROLE_HR_READONLY不應該能夠訪問創建屏幕。所以我不能將這個添加到通用方/ **。相反,我需要找到另一種方式將它們添加到我希望他能夠訪問的特定頁面中,對嗎? – Igor

+0

從我更新的答案更改映射的順序。 –

+0

謝謝!我沒有意識到訂單... – Igor

相關問題