2025-04-30 15:46:14 +08:00
|
|
|
|
package model
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"admin/internal/db"
|
|
|
|
|
"admin/internal/global"
|
2025-07-10 18:22:25 +08:00
|
|
|
|
"admin/internal/model/dto"
|
2025-04-30 15:46:14 +08:00
|
|
|
|
"admin/lib/xlog"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
|
db.RegisterTableModels(Character{})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Permission struct {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Character 角色权限组
|
|
|
|
|
type Character struct {
|
2025-07-10 18:22:25 +08:00
|
|
|
|
ID int `gorm:"primarykey" readonly:"true"`
|
|
|
|
|
Name string `name:"角色名" desc:"区别一组用户的名字,例如qa、策划、运营" gorm:"type:varchar(255);unique" required:"true" uneditable:"true"`
|
2025-07-11 03:28:23 +08:00
|
|
|
|
WriteOpCheckCharacters []string `gorm:"type:json;serializer:json" name:"操作审核员" desc:"不选表示敏感操作无需审核" type:"[]string" choices:"GetCharChoices" multi_choice:"true"`
|
2025-04-30 15:46:14 +08:00
|
|
|
|
// 权限列表,格式就是 ["project:<projectId>:<resource>:<get>", "sys:user:get", ...],
|
|
|
|
|
// 例如项目3封禁功能的列表获取权限:"project:3:ban:list"
|
|
|
|
|
Permissions []string `gorm:"type:json;serializer:json" name:"权限列表" type:"Permissions"`
|
|
|
|
|
CreatedAt time.Time `readonly:"true"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Character) TableName() string {
|
|
|
|
|
return "character"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Character) GetId() int {
|
|
|
|
|
return m.ID
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *Character) List() []*Character {
|
|
|
|
|
list := make([]*Character, 0)
|
|
|
|
|
err := global.GLOB_DB.Find(&list).Error
|
|
|
|
|
if err != nil {
|
|
|
|
|
xlog.Errorf("get all character error:%v", err)
|
|
|
|
|
return list
|
|
|
|
|
}
|
|
|
|
|
return list
|
|
|
|
|
}
|
2025-07-10 18:22:25 +08:00
|
|
|
|
|
|
|
|
|
func (m *Character) GetCharChoices() []*dto.CommonDtoFieldChoice {
|
|
|
|
|
choices := make([]*dto.CommonDtoFieldChoice, 0)
|
|
|
|
|
for _, v := range new(Character).List() {
|
|
|
|
|
choices = append(choices, &dto.CommonDtoFieldChoice{
|
|
|
|
|
Desc: v.Name,
|
|
|
|
|
Value: v.Name,
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
return choices
|
|
|
|
|
}
|