| 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 | |
| } | |