问题描述
为项目构建安全性。本质上,我希望能够使用类型为 Interface 的列表存储用户,我认为必须有更好的方法...
我的用户
object TSecUser : IntIdTable() {
val email = varchar("email",250)
}
class SecUser(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<SecUser>(TSecUser)
var email by TSecUser.email
var secRole by SecUserToSecRole via TSecUserToSecRole
}
我的角色
object TSecRole : IntIdTable() {
val appRoleName = enumerationByName("app_role_name",15,SecRoleName::class)
val description = varchar("description",100)
}
class SecRole(id: EntityID<Int>) : IntEntity(id) {
companion object : IntEntityClass<SecRole>(TSecRole)
var appRoleName by TSecRole.appRoleName
var description by TSecRole.description
}
我的派生角色
object TSalesMan : IntIdTable() {
val secUserToSecRole = reference("sec_user_to_sec_role_id",TSecUserToSecRole)
val manager = reference("manager_id",TSalesManager)
}
class SalesMan(id: EntityID<Int>) : IntEntity(id),IHasSecUserToSecRole {
companion object : IntEntityClass<SalesMan>(TSalesMan)
override var secUserToSecRole by SecUserToSecRole referencedOn TSalesMan.secUserToSecRole
}
和
object TSalesManager : IntIdTable() {
val secUserToSecRole = reference("sec_user_to_sec_role_id",TSecUserToSecRole)
}
class SalesManager(id: EntityID<Int>) : IntEntity(id),IHasSecUserToSecRole {
companion object : IntEntityClass<SalesManager>(TSalesManager)
override var secUserToSecRole by SecUserToSecRole referencedOn TSalesManager.secUserToSecRole
}
最后我有一个映射道
object TSecUserToSecRole : IntIdTable() {
val secUser = reference("sec_user_id",TSecUser)
val secRole = reference("sec_role_id",TSecRole)
}
class SecUserToSecRole(id: EntityID<Int>) : IntEntity(id){
companion object : IntEntityClass<SecUserToSecRole>(TSecUserToSecRole)
var secUser by TSecUserToSecRole.secUser
var secRole by TSecUserToSecRole.secRole
}
interface IHasSecUserToSecRole{
var secUserToSecRole:SecUserToSecRole
}
我不认为我走的是正确的道路,任何关于更好方法的输入都会很棒。
我认为我真的应该让 SecUserToSecRole 和公开课,但我不知道如何在公开中表示。
提前准备好。为文字墙道歉
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)