mirror of
https://github.com/cloudreve/cloudreve.git
synced 2025-10-28 23:26:01 +08:00
Add: model - group / Test: group
This commit is contained in:
37
models/group.go
Normal file
37
models/group.go
Normal file
@ -0,0 +1,37 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"github.com/jinzhu/gorm"
|
||||
)
|
||||
|
||||
// Group 用户组模型
|
||||
type Group struct {
|
||||
gorm.Model
|
||||
Name string
|
||||
Policies string
|
||||
MaxStorage uint64
|
||||
SpeedLimit int
|
||||
ShareEnabled bool
|
||||
RangeTransferEnabled bool
|
||||
WebDAVEnabled bool
|
||||
Aria2Option string
|
||||
Color string
|
||||
|
||||
// 数据库忽略字段
|
||||
PolicyList []int `gorm:"-"`
|
||||
}
|
||||
|
||||
// GetGroupByID 用ID获取用户组
|
||||
func GetGroupByID(ID interface{}) (Group, error) {
|
||||
var group Group
|
||||
result := DB.First(&group, ID)
|
||||
return group, result.Error
|
||||
}
|
||||
|
||||
// AfterFind 找到用户组后的钩子,处理Policy列表
|
||||
func (group *Group) AfterFind() (err error) {
|
||||
// 解析用户设置到OptionsSerialized
|
||||
err = json.Unmarshal([]byte(group.Policies), &group.PolicyList)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user