我已经和 Grails 一起工作了几个月,我偶然发现了一些东西......
所以我有一个安装了 Spring Security 的小应用程序并创建了用户等。
谢谢大家
- - - -编辑 - - - -
为了使问题更简单直接,请忘记类名。
class ABC extends XYZ{...}
class XYZ{...}
问题:XYZ的多个对象可以扩展ABC的同一个对象吗?**所以如果我已经有扩展 XYZ1 的对象 ABC1,我可以创建 XYZ2 并让它也扩展 ABC1 吗?
似乎用户应该有一个组。根据您的模型,他们可能有一个或多个组。所以我的建议:
class Group {
String name
}
关联User:
class User {
Group userGroup
}
或者
class User {
static hasMany = [groups: Group]
}
在您创建类的方式中,一个组似乎是一个用户,我认为这不是您想要实现的目标。
您可能需要分层角色而不是一组用户来执行此操作。
抱歉,我可能错过了您的观点,但听起来您正在寻找行级(或实例级)访问控制。例如,您似乎只希望某些用户(特定组内的用户)能够访问(查看、编辑等)对象(例如,同一个组对象)。
如果这是您的意图,那么我建议您查看 shiro 插件——在我看来,它比 Spring Secuity 更好地执行实例级 ACL。
http://grails.org/plugin/shiro
还有一个新插件通过 Spring Security 集成了 shiro ACL。我自己还没有测试过,但如果你已经将 Spring Security 集成到你的应用程序中,它看起来可能是要走的路。