package model import ( "admin/internal/db" "admin/internal/global" "admin/internal/model/dto" "admin/lib/xlog" "time" ) func init() { db.RegisterTableModels(Character{}) } type Permission struct { } // Character 角色权限组 type Character struct { ID int `gorm:"primarykey" readonly:"true"` Name string `name:"角色名" desc:"区别一组用户的名字,例如qa、策划、运营" gorm:"type:varchar(255);unique" required:"true" uneditable:"true"` WriteOpCheckCharacters []string `gorm:"type:json;serializer:json" name:"操作审核员" desc:"不选表示敏感操作无需审核" type:"[]string" choices:"GetCharChoices" multi_choice:"true"` // 权限列表,格式就是 ["project:::", "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 } 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 }