【发布时间】:2015-04-12 22:33:03
【问题描述】:
我正在开发一个应用程序,该应用程序有几家公司作为我们的客户,每个公司下有多个用户访问我们的应用程序。
所以我构建了用户表,将所有公司的用户保存在同一个表中,并将 company_id 作为列-
class User {
String username
String password
static belongsTo = [company:Company]
static constraints = {
username blank: false
password blank: false
}
}
在这个应用程序中,我自定义了 spring 安全性以基于 3 个字段对用户进行身份验证 - username、password 和 comapany。因此,如果 Org1 和 Org2 公司中有两个用户 ABC,他们将被正确识别。
现在,如果我在username 上应用unique: true 的约束,则该约束将应用于整个表,并且它不允许我保存两个用户ABC,无论他们是否在两个不同的公司。
(PS-我理解约束是基于表格的,请进一步阅读)。
现在的主要问题是我想让username 基于公司而不是基于用户表是唯一的。怎么做?是否存在可用于检查用户名是否存在于公司中的预定义约束?或者如果用户名已经存在于公司中,每次注册时都必须检查它?
【问题讨论】:
标签: grails spring-security constraints