58 lines
1.6 KiB
Go
58 lines
1.6 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
// RoleStatus 角色状态
|
|
type RoleStatus int
|
|
|
|
const (
|
|
RoleStatusDisabled RoleStatus = 0 // 禁用
|
|
RoleStatusEnabled RoleStatus = 1 // 启用
|
|
)
|
|
|
|
// Role 角色模型
|
|
type Role struct {
|
|
ID int64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
|
Name string `gorm:"type:varchar(50);uniqueIndex;not null" json:"name"`
|
|
Code string `gorm:"type:varchar(50);uniqueIndex;not null" json:"code"`
|
|
Description string `gorm:"type:varchar(200)" json:"description"`
|
|
ParentID *int64 `gorm:"index" json:"parent_id,omitempty"`
|
|
Level int `gorm:"default:1;index" json:"level"`
|
|
IsSystem bool `gorm:"default:false" json:"is_system"` // 是否系统角色
|
|
IsDefault bool `gorm:"default:false;index" json:"is_default"` // 是否默认角色
|
|
Status RoleStatus `gorm:"type:int;default:1" json:"status"`
|
|
CreatedAt time.Time `gorm:"autoCreateTime" json:"created_at"`
|
|
UpdatedAt time.Time `gorm:"autoUpdateTime" json:"updated_at"`
|
|
}
|
|
|
|
// TableName 指定表名
|
|
func (Role) TableName() string {
|
|
return "roles"
|
|
}
|
|
|
|
// PredefinedRoles 预定义角色
|
|
var PredefinedRoles = []Role{
|
|
{
|
|
ID: 1,
|
|
Name: "管理员",
|
|
Code: "admin",
|
|
Description: "系统管理员角色,拥有所有权限",
|
|
ParentID: nil,
|
|
Level: 1,
|
|
IsSystem: true,
|
|
IsDefault: false,
|
|
Status: RoleStatusEnabled,
|
|
},
|
|
{
|
|
ID: 2,
|
|
Name: "普通用户",
|
|
Code: "user",
|
|
Description: "普通用户角色,基本权限",
|
|
ParentID: nil,
|
|
Level: 1,
|
|
IsSystem: true,
|
|
IsDefault: true,
|
|
Status: RoleStatusEnabled,
|
|
},
|
|
}
|