Commit af07adb1 by Daniel Lee

refactor(securejsondata): extract to class

Extract from pluginsettings class so that the
securejsondata type can be used in the other
classes. Encrypt and decrypt functions
extracted too.
parent 56b7e2df
package securejsondata
import (
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/util"
)
type SecureJsonData map[string][]byte
func (s SecureJsonData) Decrypt() map[string]string {
decrypted := make(map[string]string)
for key, data := range s {
decrypted[key] = string(util.Decrypt(data, setting.SecretKey))
}
return decrypted
}
func GetEncryptedJsonData(sjd map[string]string) SecureJsonData {
encrypted := make(SecureJsonData)
for key, data := range sjd {
encrypted[key] = util.Encrypt([]byte(data), setting.SecretKey)
}
return encrypted
}
...@@ -4,8 +4,7 @@ import ( ...@@ -4,8 +4,7 @@ import (
"errors" "errors"
"time" "time"
"github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/components/securejsondata"
"github.com/grafana/grafana/pkg/util"
) )
var ( var (
...@@ -19,23 +18,13 @@ type PluginSetting struct { ...@@ -19,23 +18,13 @@ type PluginSetting struct {
Enabled bool Enabled bool
Pinned bool Pinned bool
JsonData map[string]interface{} JsonData map[string]interface{}
SecureJsonData SecureJsonData SecureJsonData securejsondata.SecureJsonData
PluginVersion string PluginVersion string
Created time.Time Created time.Time
Updated time.Time Updated time.Time
} }
type SecureJsonData map[string][]byte
func (s SecureJsonData) Decrypt() map[string]string {
decrypted := make(map[string]string)
for key, data := range s {
decrypted[key] = string(util.Decrypt(data, setting.SecretKey))
}
return decrypted
}
// ---------------------- // ----------------------
// COMMANDS // COMMANDS
...@@ -58,12 +47,8 @@ type UpdatePluginSettingVersionCmd struct { ...@@ -58,12 +47,8 @@ type UpdatePluginSettingVersionCmd struct {
OrgId int64 `json:"-"` OrgId int64 `json:"-"`
} }
func (cmd *UpdatePluginSettingCmd) GetEncryptedJsonData() SecureJsonData { func (cmd *UpdatePluginSettingCmd) GetEncryptedJsonData() securejsondata.SecureJsonData {
encrypted := make(SecureJsonData) return securejsondata.GetEncryptedJsonData(cmd.SecureJsonData)
for key, data := range cmd.SecureJsonData {
encrypted[key] = util.Encrypt([]byte(data), setting.SecretKey)
}
return encrypted
} }
// --------------------- // ---------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment