我的网站有两种类型的用户:卖家和买家。这两个域类都不同(卖方有拍卖,买方有出价)。如何使用Spring安全性插件创建两个域类?
将User类扩展到卖方和买方 - 它将无法正常工作,因为我必须为春季安全注册一个类
将用户对象作为卖方和买方的属性。那会有用吗?有人曾尝试过吗?
我在互联网上找不到一个例子。我发现的只是如何通过修改User类或扩展它来自定义插件。如果你能指出一些好的方向。我是Grails的新手。感谢。
答案 0 :(得分:1)
这实际上取决于卖方和买方的含义。
如果它与Amazon.com类似;他们如何允许一个帐户(又名用户)拥有卖家资料和客户(买家)资料,然后您可以向用户添加卖家和买家资产。
class User {
Seller seller
Buyer buyer
}
然后根据需要选择合适的个人资料。
springSecurityService.currentUser.seller
// or
springSecurityService.currentUser.buyer
如果用户只能是买方或卖方,那么一对一的关联将是最好的,但它需要买方和卖方的共同超类。
class User {
Static hasOne = [profile: UserProfile]
}
class UserProfile { }
class Seller extends UserProfile {
User user
}
class Buyer extends UserProfile {
User user
}
但是使用这种方法,您将无法知道您所拥有的类型。因为
springSecurityService.currentUser.profile
可以返回任何一种类型。如果类型很重要,那么这是一个警告标志,即一对一不是正确的选择。替代方案可能是用户域中的用户类型属性。