Grails - 仅访问对象的所有者

Gre*_*tek 2 grails groovy spring spring-security

我还在处理我的第一个Grails应用程序.这一次,我的问题是限制对特定用户的某些操作的访问.

假设用户添加了一些对象,例如书籍.我想授予管理员和添加该书的用户编辑图书的权限.我目前正在使用Acegi插件.我知道有更新版本的插件,但我不确定它是否会改变我的问题.

第二件事是某种类似的.我有一个侧边栏,并且有"Hello $ {currentUser.username}.currentUser是一个返回当前登录用户实例的方法.但问题是我不知道在哪里可以将此消息设置为能够在任何地方都可以使用它.我应该把它放在一些服务中并将其包含在所有地方吗?我试图创建一个由所有其他控制器扩展的ApplicationController,但这似乎不起作用.你有什么想法吗?

谢谢!格热戈日

Bur*_*ith 5

您应该使用较新的Spring Security Core插件,因为它有一个ACL附加插件,可以完全满足您的需求.有关详细信息,请参阅http://grails.org/plugin/spring-security-acl.

对于第二个问题,有一个taglib.在Acegi插件中使用此:

Hello <g:loggedInUserInfo field="username"/>

(参见http://www.grails.org/AcegiSecurity+Plugin+-+Artifacts)并在Spring Security Core插件中使用:

Hello <sec:username/>

(参见http://burtbeckwith.github.com/grails-spring-security-core/docs/manual/的"安全标签"部分)