37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
package model
|
|
|
|
type LoginPolicy struct {
|
|
ID string `gorm:"primary_key,type:varchar(36)" json:"id"`
|
|
Name string `gorm:"type:varchar(500)" json:"name"` // 名称
|
|
IpGroup string `json:"ipGroup"` // IP组 格式为逗号分隔的字符串, 0.0.0.0 匹配所有。例如: 192.168.0.1, 192.168.1.0/24, 192.168.2.0-192.168.2.20
|
|
Priority int64 `json:"priority"` // 优先级 越小优先级越高
|
|
Enabled bool `json:"enabled"` // 是否激活
|
|
Rule string `gorm:"type:varchar(20)" json:"rule"` // 规则 允许或拒绝
|
|
TimePeriod []TimePeriod `gorm:"-" json:"timePeriod"` // 时间区间
|
|
}
|
|
|
|
func (r *LoginPolicy) TableName() string {
|
|
return "login_policies"
|
|
}
|
|
|
|
type LoginPolicyUserRef struct {
|
|
ID string `gorm:"primary_key,type:varchar(36)" json:"id"`
|
|
UserId string `gorm:"index,type:varchar(36)" json:"userId"`
|
|
LoginPolicyId string `gorm:"index,type:varchar(36)" json:"loginPolicyId"`
|
|
}
|
|
|
|
func (r *LoginPolicyUserRef) TableName() string {
|
|
return "login_policies_ref"
|
|
}
|
|
|
|
type TimePeriod struct {
|
|
ID string `gorm:"primary_key,type:varchar(36)" json:"id"`
|
|
LoginPolicyId string `gorm:"index,type:varchar(36)" json:"loginPolicyId"`
|
|
Key int `json:"key"`
|
|
Value string `json:"value"`
|
|
}
|
|
|
|
func (r *TimePeriod) TableName() string {
|
|
return "time_periods"
|
|
}
|