mirror of
https://github.com/grafana/grafana.git
synced 2025-02-10 23:55:47 -06:00
merge main
This commit is contained in:
parent
8a6d2e9b6e
commit
09741a3f49
@ -19,24 +19,5 @@ func GetRequester(ctx context.Context) (Requester, error) {
|
||||
if ok && u != nil {
|
||||
return u, nil
|
||||
}
|
||||
|
||||
// HACK for now...
|
||||
if true {
|
||||
return &StaticRequester{
|
||||
OrgID: 1,
|
||||
IsGrafanaAdmin: true,
|
||||
UserID: 1,
|
||||
Namespace: NamespaceUser,
|
||||
UserUID: "abc",
|
||||
Name: "hello",
|
||||
Login: "justme",
|
||||
Permissions: map[int64]map[string][]string{
|
||||
1: {
|
||||
"*": {"*"}, // all resources, all scopes
|
||||
},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
return nil, fmt.Errorf("a Requester was not found in the context")
|
||||
}
|
||||
|
@ -53,85 +53,6 @@ type ResourceOriginInfo struct {
|
||||
_ any `json:"-"`
|
||||
}
|
||||
|
||||
type BlobInfo struct {
|
||||
UID string `json:"uid"`
|
||||
Size int64 `json:"size,omitempty"`
|
||||
Hash string `json:"hash,omitempty"`
|
||||
MimeType string `json:"mime,omitempty"`
|
||||
Charset string `json:"charset,omitempty"` // content type = mime+charset
|
||||
}
|
||||
|
||||
// Content type is mime + charset
|
||||
func (b *BlobInfo) SetContentType(v string) {
|
||||
var params map[string]string
|
||||
var err error
|
||||
|
||||
b.Charset = ""
|
||||
b.MimeType, params, err = mime.ParseMediaType(v)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
b.Charset = params["charset"]
|
||||
}
|
||||
|
||||
// Content type is mime + charset
|
||||
func (b *BlobInfo) ContentType() string {
|
||||
sb := bytes.NewBufferString(b.MimeType)
|
||||
if b.Charset != "" {
|
||||
sb.WriteString("; charset=")
|
||||
sb.WriteString(b.Charset)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func (b *BlobInfo) String() string {
|
||||
sb := bytes.NewBufferString(b.UID)
|
||||
if b.Size > 0 {
|
||||
sb.WriteString(fmt.Sprintf("; size=%d", b.Size))
|
||||
}
|
||||
if b.Hash != "" {
|
||||
sb.WriteString("; hash=")
|
||||
sb.WriteString(b.Hash)
|
||||
}
|
||||
if b.MimeType != "" {
|
||||
sb.WriteString("; mime=")
|
||||
sb.WriteString(b.MimeType)
|
||||
}
|
||||
if b.Charset != "" {
|
||||
sb.WriteString("; charset=")
|
||||
sb.WriteString(b.Charset)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func ParseBlobInfo(v string) *BlobInfo {
|
||||
if v == "" {
|
||||
return nil
|
||||
}
|
||||
info := &BlobInfo{}
|
||||
for i, part := range strings.Split(v, ";") {
|
||||
if i == 0 {
|
||||
info.UID = part
|
||||
continue
|
||||
}
|
||||
kv := strings.Split(strings.TrimSpace(part), "=")
|
||||
if len(kv) == 2 {
|
||||
val := kv[1]
|
||||
switch kv[0] {
|
||||
case "size":
|
||||
info.Size, _ = strconv.ParseInt(val, 10, 64)
|
||||
case "hash":
|
||||
info.Hash = val
|
||||
case "mime":
|
||||
info.MimeType = val
|
||||
case "charset":
|
||||
info.Charset = val
|
||||
}
|
||||
}
|
||||
}
|
||||
return info
|
||||
}
|
||||
|
||||
// Accessor functions for k8s objects
|
||||
type GrafanaMetaAccessor interface {
|
||||
metav1.Object
|
||||
@ -585,3 +506,82 @@ func (m *grafanaMetaAccessor) FindTitle(defaultTitle string) string {
|
||||
}
|
||||
return defaultTitle
|
||||
}
|
||||
|
||||
type BlobInfo struct {
|
||||
UID string `json:"uid"`
|
||||
Size int64 `json:"size,omitempty"`
|
||||
Hash string `json:"hash,omitempty"`
|
||||
MimeType string `json:"mime,omitempty"`
|
||||
Charset string `json:"charset,omitempty"` // content type = mime+charset
|
||||
}
|
||||
|
||||
// Content type is mime + charset
|
||||
func (b *BlobInfo) SetContentType(v string) {
|
||||
var params map[string]string
|
||||
var err error
|
||||
|
||||
b.Charset = ""
|
||||
b.MimeType, params, err = mime.ParseMediaType(v)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
b.Charset = params["charset"]
|
||||
}
|
||||
|
||||
// Content type is mime + charset
|
||||
func (b *BlobInfo) ContentType() string {
|
||||
sb := bytes.NewBufferString(b.MimeType)
|
||||
if b.Charset != "" {
|
||||
sb.WriteString("; charset=")
|
||||
sb.WriteString(b.Charset)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func (b *BlobInfo) String() string {
|
||||
sb := bytes.NewBufferString(b.UID)
|
||||
if b.Size > 0 {
|
||||
sb.WriteString(fmt.Sprintf("; size=%d", b.Size))
|
||||
}
|
||||
if b.Hash != "" {
|
||||
sb.WriteString("; hash=")
|
||||
sb.WriteString(b.Hash)
|
||||
}
|
||||
if b.MimeType != "" {
|
||||
sb.WriteString("; mime=")
|
||||
sb.WriteString(b.MimeType)
|
||||
}
|
||||
if b.Charset != "" {
|
||||
sb.WriteString("; charset=")
|
||||
sb.WriteString(b.Charset)
|
||||
}
|
||||
return sb.String()
|
||||
}
|
||||
|
||||
func ParseBlobInfo(v string) *BlobInfo {
|
||||
if v == "" {
|
||||
return nil
|
||||
}
|
||||
info := &BlobInfo{}
|
||||
for i, part := range strings.Split(v, ";") {
|
||||
if i == 0 {
|
||||
info.UID = part
|
||||
continue
|
||||
}
|
||||
kv := strings.Split(strings.TrimSpace(part), "=")
|
||||
if len(kv) == 2 {
|
||||
val := kv[1]
|
||||
switch kv[0] {
|
||||
case "size":
|
||||
info.Size, _ = strconv.ParseInt(val, 10, 64)
|
||||
case "hash":
|
||||
info.Hash = val
|
||||
case "mime":
|
||||
info.MimeType = val
|
||||
case "charset":
|
||||
info.Charset = val
|
||||
}
|
||||
}
|
||||
}
|
||||
return info
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user