| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package models
- import (
- "errors"
- "github.com/grafana/grafana/pkg/setting"
- "time"
- )
- var ErrInvalidQuotaTarget = errors.New("Invalid quota target")
- type Quota struct {
- Id int64
- OrgId int64
- UserId int64
- Target string
- Limit int64
- Created time.Time
- Updated time.Time
- }
- type QuotaScope struct {
- Name string
- Target string
- DefaultLimit int64
- }
- type OrgQuotaDTO struct {
- OrgId int64 `json:"org_id"`
- Target string `json:"target"`
- Limit int64 `json:"limit"`
- Used int64 `json:"used"`
- }
- type UserQuotaDTO struct {
- UserId int64 `json:"user_id"`
- Target string `json:"target"`
- Limit int64 `json:"limit"`
- Used int64 `json:"used"`
- }
- type GlobalQuotaDTO struct {
- Target string `json:"target"`
- Limit int64 `json:"limit"`
- Used int64 `json:"used"`
- }
- type GetOrgQuotaByTargetQuery struct {
- Target string
- OrgId int64
- Default int64
- Result *OrgQuotaDTO
- }
- type GetOrgQuotasQuery struct {
- OrgId int64
- Result []*OrgQuotaDTO
- }
- type GetUserQuotaByTargetQuery struct {
- Target string
- UserId int64
- Default int64
- Result *UserQuotaDTO
- }
- type GetUserQuotasQuery struct {
- UserId int64
- Result []*UserQuotaDTO
- }
- type GetGlobalQuotaByTargetQuery struct {
- Target string
- Default int64
- Result *GlobalQuotaDTO
- }
- type UpdateOrgQuotaCmd struct {
- Target string `json:"target"`
- Limit int64 `json:"limit"`
- OrgId int64 `json:"-"`
- }
- type UpdateUserQuotaCmd struct {
- Target string `json:"target"`
- Limit int64 `json:"limit"`
- UserId int64 `json:"-"`
- }
- func GetQuotaScopes(target string) ([]QuotaScope, error) {
- scopes := make([]QuotaScope, 0)
- switch target {
- case "user":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.User},
- QuotaScope{Name: "org", Target: "org_user", DefaultLimit: setting.Quota.Org.User},
- )
- return scopes, nil
- case "org":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Org},
- QuotaScope{Name: "user", Target: "org_user", DefaultLimit: setting.Quota.User.Org},
- )
- return scopes, nil
- case "dashboard":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Dashboard},
- QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.Dashboard},
- )
- return scopes, nil
- case "data_source":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.DataSource},
- QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.DataSource},
- )
- return scopes, nil
- case "api_key":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.ApiKey},
- QuotaScope{Name: "org", Target: target, DefaultLimit: setting.Quota.Org.ApiKey},
- )
- return scopes, nil
- case "session":
- scopes = append(scopes,
- QuotaScope{Name: "global", Target: target, DefaultLimit: setting.Quota.Global.Session},
- )
- return scopes, nil
- default:
- return scopes, ErrInvalidQuotaTarget
- }
- }
|