2013-03-12 58 views
0

我一直在使用Grails了几个月,现在我已经在一些事情上跌跌撞撞......的Grails - 扩展实例

所以我和春天有安全性的小型应用程序安装以及用户等

谢谢大家提前

------- --------编辑

为了使问题更简单和直接的,忘了类名。

class ABC extends XYZ{...} 

class XYZ{...} 

问题:XYZ的多个对象是否可以扩展ABC的同一个对象? **所以如果我已经有了扩展XYZ1的对象ABC1,我可以创建XYZ2并将它扩展到ABC1吗?

+0

一些对象扩展另一个对象?我不明白。或者你在谈论某个类扩展另一个类? – coderLMN 2013-03-13 06:27:34

+0

我也不明白。首先,你的'ABC'扩展了'XYZ',然后你想要多个'XYZ'来扩展'ABC'?不,不可能。你不能有循环继承... – herom 2013-03-13 07:14:50

+0

Jinzhao:ABC领域类,ABC对象/在grails中的ABC实例是同样的事情不是吗? herom:不,我要说的是XYZ1,XYZ2,XYZ3实例可以扩展ABC1,所以当然不是圆形的 – bedford 2013-03-13 18:28:37

回答

2

看来,用户应该有一个组。根据你的模型,他们可以有一个或多个组。所以我的建议:

class Group { 
    String name 
} 

协会User

class User { 
    Group userGroup 
} 

class User { 
    static hasMany = [groups: Group] 
} 

在您创建的类,似乎一个组是用户和我的方式认为这不是你想要达到的目标。

+0

也许集团是一个不好的例子..但让我们说这是一个雇主。我知道这个解决方法,但我在寻找,并且我更喜欢一个解决方案(如果可能的话)有一个雇主只能由管理此雇主配置文件的用户组访问。谢谢Sérgio。 – bedford 2013-03-12 22:58:00

+0

在这种情况下我的例子适用。您拥有该用户,并且该用户拥有一个或多个可以更改数据的雇主配置文件。如果某些用户试图访问他无权访问的雇主的控制器操作,则可以创建一个返回访问被拒绝的过滤器。 – 2013-03-13 16:53:29

+0

谢谢我会看看那个,我已经更新了这个问题,所以现在可能会更清楚。 – bedford 2013-03-13 18:38:43

0

您可能需要Hierarchical Roles而不是一组用户来执行此操作。

+0

谢谢你试图回答我的问题......我已经重写了它,因为它更像是一个普遍的问题。类名使其具有误导性。 – bedford 2013-03-13 05:55:29

0

对不起,我可能会错过你的观点,但它听起来像是在寻找行级(或实例级)访问控制。例如,您似乎希望只有某些用户(特定组中的用户)能够访问(查看,编辑等)对象(例如,相同的组对象)。

如果这是您的意图,那么我建议您查看shiro插件 - 在我看来,它比Spring Secuity更像实例级ACL。

http://grails.org/plugin/shiro

还有通过Spring Security的集成四郎ACL一个新的插件。还没有对自己进行测试,但看起来如果您已经将Spring Security集成到您的应用程序中,它可能是一条路。

http://grails.org/plugin/spring-security-shiro

+0

谢谢你试图回答我的问题......我已经重写了它,因为它更像是一个普遍的问题。类名使其具有误导性。 – bedford 2013-03-13 05:54:45