test_data/model/user.go
2024-07-17 15:13:00 +08:00

85 lines
3.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"gorm.io/gorm"
"time"
)
type User struct {
ID uint `gorm:"primaryKey" json:"id"`
Uuid string `json:"uuid" gorm:"index"`
UserId string `json:"user_id"`
Email string `json:"email" gorm:"index"`
Username string `json:"username" gorm:"index"`
LinuxName string `json:"linux_name" gorm:"index"`
Phone string `json:"phone" gorm:"index"`
//RoleId string `json:"role_id"`
//Role Role `json:"role" gorm:"foreignkey:RoleId;references:RoleId"`
Role []*Role `json:"role" gorm:"many2many:user_role;foreignkey:UserId;references:RoleId"`
DepartmentId string `json:"department_id"`
Department Departments `json:"department" gorm:"foreignkey:DepartmentId;references:DepartmentId"`
Departments []Departments `json:"departments" gorm:"many2many:user_department_relations;foreignkey:UserId;references:DepartmentId"`
PositionId string `json:"position_id"`
Position Position `json:"position" gorm:"foreignkey:PositionId;references:PositionId"`
LastLoginAt string `json:"last_login_at"`
LastLoginIp string `json:"last_login_ip"`
LastLoginAddress string `json:"last_login_address"`
Password string `json:"-"`
Gender string `json:"gender"`
Active bool `json:"active"`
IsManager bool `json:"is_manager" gorm:"default:false"`
IsRestrict bool `json:"is_restrict" gorm:"default:false"`
IpRange string `json:"ip_range"`
// 补充字段
Company string `json:"company" gorm:"comment:归属分公司"`
DefaultShell string `json:"default_shell" gorm:"用户默认shell"`
Home string `json:"home" gorm:"comment:用户home目录路径"`
Uid string `json:"uid" gorm:"comment:用户在Nis中的uid"`
Salt string `json:"-" gorm:"comment:密码盐"`
Iv string `json:"-"`
SosManager bool `json:"sos_manager" gorm:"comment:为true,默认加载到sos配置文件的admin中"`
ProjectManager bool `json:"project_manager" gorm:"comment:为true,能查看所有项目"`
CompanyManager bool `json:"company_manager" gorm:"comment:为true可管理用户,用户组"`
Groups []*Group `json:"groups" gorm:"many2many:user_group;"`
DN string `json:"dn"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
func (User) TableName() string {
return "users"
}
type LoginRecord struct {
ID uint `gorm:"primaryKey" json:"id"`
Uuid string `json:"uuid" gorm:"index"`
Username string `json:"username"`
IP string `json:"ip"`
Address string `json:"address"`
Msg string `json:"msg"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
func (LoginRecord) TableName() string {
return "login_Record"
}
//
// Group
/* @Description: 根据项目将项目内成员分组如TP0001S */
type Group struct {
ID uint `gorm:"primaryKey" json:"id"`
Name string `json:"name" gorm:"comment:组名"`
Users []*User `json:"users" gorm:"many2many:user_group;"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
func (Group) TableName() string {
return "group"
}