|
@@ -23,10 +23,33 @@ type Token struct {
|
|
|
UnlimitedQuota bool `json:"unlimited_quota" gorm:"default:false"`
|
|
UnlimitedQuota bool `json:"unlimited_quota" gorm:"default:false"`
|
|
|
ModelLimitsEnabled bool `json:"model_limits_enabled" gorm:"default:false"`
|
|
ModelLimitsEnabled bool `json:"model_limits_enabled" gorm:"default:false"`
|
|
|
ModelLimits string `json:"model_limits" gorm:"type:varchar(1024);default:''"`
|
|
ModelLimits string `json:"model_limits" gorm:"type:varchar(1024);default:''"`
|
|
|
|
|
+ AllowIps *string `json:"allow_ips" gorm:"default:''"`
|
|
|
UsedQuota int `json:"used_quota" gorm:"default:0"` // used quota
|
|
UsedQuota int `json:"used_quota" gorm:"default:0"` // used quota
|
|
|
DeletedAt gorm.DeletedAt `gorm:"index"`
|
|
DeletedAt gorm.DeletedAt `gorm:"index"`
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func (token *Token) GetIpLimitsMap() map[string]any {
|
|
|
|
|
+ // delete empty spaces
|
|
|
|
|
+ //split with \n
|
|
|
|
|
+ ipLimitsMap := make(map[string]any)
|
|
|
|
|
+ if token.AllowIps == nil {
|
|
|
|
|
+ return ipLimitsMap
|
|
|
|
|
+ }
|
|
|
|
|
+ cleanIps := strings.ReplaceAll(*token.AllowIps, " ", "")
|
|
|
|
|
+ if cleanIps == "" {
|
|
|
|
|
+ return ipLimitsMap
|
|
|
|
|
+ }
|
|
|
|
|
+ ips := strings.Split(cleanIps, "\n")
|
|
|
|
|
+ for _, ip := range ips {
|
|
|
|
|
+ ip = strings.TrimSpace(ip)
|
|
|
|
|
+ ip = strings.ReplaceAll(ip, ",", "")
|
|
|
|
|
+ if common.IsIP(ip) {
|
|
|
|
|
+ ipLimitsMap[ip] = true
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return ipLimitsMap
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func GetAllUserTokens(userId int, startIdx int, num int) ([]*Token, error) {
|
|
func GetAllUserTokens(userId int, startIdx int, num int) ([]*Token, error) {
|
|
|
var tokens []*Token
|
|
var tokens []*Token
|
|
|
var err error
|
|
var err error
|
|
@@ -130,7 +153,7 @@ func (token *Token) Insert() error {
|
|
|
// Update Make sure your token's fields is completed, because this will update non-zero values
|
|
// Update Make sure your token's fields is completed, because this will update non-zero values
|
|
|
func (token *Token) Update() error {
|
|
func (token *Token) Update() error {
|
|
|
var err error
|
|
var err error
|
|
|
- err = DB.Model(token).Select("name", "status", "expired_time", "remain_quota", "unlimited_quota", "model_limits_enabled", "model_limits").Updates(token).Error
|
|
|
|
|
|
|
+ err = DB.Model(token).Select("name", "status", "expired_time", "remain_quota", "unlimited_quota", "model_limits_enabled", "model_limits", "allow_ips").Updates(token).Error
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|