next-terminal/server/model/login_policy.go
2022-10-23 20:05:13 +08:00

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"
}