forked from grafana.jool/grafana-jool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
605 B
34 lines
605 B
package signature
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/plugins"
|
|
"github.com/grafana/grafana/pkg/setting"
|
|
)
|
|
|
|
func ProvideService(cfg *setting.Cfg) (*UnsignedPluginAuthorizer, error) {
|
|
return &UnsignedPluginAuthorizer{
|
|
Cfg: cfg,
|
|
}, nil
|
|
}
|
|
|
|
type UnsignedPluginAuthorizer struct {
|
|
Cfg *setting.Cfg
|
|
}
|
|
|
|
func (u *UnsignedPluginAuthorizer) CanLoadPlugin(p *plugins.Plugin) bool {
|
|
if p.Signature != plugins.SignatureUnsigned {
|
|
return true
|
|
}
|
|
|
|
if u.Cfg.Env == setting.Dev {
|
|
return true
|
|
}
|
|
|
|
for _, pID := range u.Cfg.PluginsAllowUnsigned {
|
|
if pID == p.ID {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|