| package setting |
|
|
| import ( |
| "encoding/json" |
| "sync" |
|
|
| "github.com/QuantumNous/new-api/common" |
| ) |
|
|
| var userUsableGroups = map[string]string{ |
| "default": "默认分组", |
| "vip": "vip分组", |
| } |
| var userUsableGroupsMutex sync.RWMutex |
|
|
| func GetUserUsableGroupsCopy() map[string]string { |
| userUsableGroupsMutex.RLock() |
| defer userUsableGroupsMutex.RUnlock() |
|
|
| copyUserUsableGroups := make(map[string]string) |
| for k, v := range userUsableGroups { |
| copyUserUsableGroups[k] = v |
| } |
| return copyUserUsableGroups |
| } |
|
|
| func UserUsableGroups2JSONString() string { |
| userUsableGroupsMutex.RLock() |
| defer userUsableGroupsMutex.RUnlock() |
|
|
| jsonBytes, err := json.Marshal(userUsableGroups) |
| if err != nil { |
| common.SysLog("error marshalling user groups: " + err.Error()) |
| } |
| return string(jsonBytes) |
| } |
|
|
| func UpdateUserUsableGroupsByJSONString(jsonStr string) error { |
| userUsableGroupsMutex.Lock() |
| defer userUsableGroupsMutex.Unlock() |
|
|
| userUsableGroups = make(map[string]string) |
| return json.Unmarshal([]byte(jsonStr), &userUsableGroups) |
| } |
|
|
| func GetUsableGroupDescription(groupName string) string { |
| userUsableGroupsMutex.RLock() |
| defer userUsableGroupsMutex.RUnlock() |
|
|
| if desc, ok := userUsableGroups[groupName]; ok { |
| return desc |
| } |
| return groupName |
| } |
|
|