merge main
This commit is contained in:
@@ -19,24 +19,5 @@ func GetRequester(ctx context.Context) (Requester, error) {
|
|||||||
if ok && u != nil {
|
if ok && u != nil {
|
||||||
return 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")
|
return nil, fmt.Errorf("a Requester was not found in the context")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,85 +53,6 @@ type ResourceOriginInfo struct {
|
|||||||
_ any `json:"-"`
|
_ 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
|
// Accessor functions for k8s objects
|
||||||
type GrafanaMetaAccessor interface {
|
type GrafanaMetaAccessor interface {
|
||||||
metav1.Object
|
metav1.Object
|
||||||
@@ -585,3 +506,82 @@ func (m *grafanaMetaAccessor) FindTitle(defaultTitle string) string {
|
|||||||
}
|
}
|
||||||
return defaultTitle
|
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
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user