2016-05-12 39 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

相关问题