From 614c3b73fc520712faa0066580ead47c071c3512 Mon Sep 17 00:00:00 2001 From: jamesread Date: Mon, 18 Oct 2021 20:14:38 +0100 Subject: [PATCH] work on sanitizing configs --- cmd/OliveTin/main.go | 4 +--- internal/config/sanitize.go | 32 ++++++++++++++++++++++++++++++ internal/grpcapi/grpcApi.go | 15 -------------- internal/grpcapi/grpcApiButtons.go | 15 ++++++++++++++ 4 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 internal/config/sanitize.go diff --git a/cmd/OliveTin/main.go b/cmd/OliveTin/main.go index e7c92fd..8fa80a7 100644 --- a/cmd/OliveTin/main.go +++ b/cmd/OliveTin/main.go @@ -62,9 +62,7 @@ func reloadConfig() { os.Exit(1) } - if logLevel, err := log.ParseLevel(cfg.LogLevel); err == nil { - log.SetLevel(logLevel) - } + config.Sanitize(cfg); } func main() { diff --git a/internal/config/sanitize.go b/internal/config/sanitize.go new file mode 100644 index 0000000..cb6c6db --- /dev/null +++ b/internal/config/sanitize.go @@ -0,0 +1,32 @@ +package config + +import ( + log "github.com/sirupsen/logrus" +) + +func Sanitize(cfg *Config) { + sanitizeLogLevel(cfg); + + for _, action := range cfg.ActionButtons { + sanitizeAction(action) + } +} + +func sanitizeLogLevel(cfg *Config) { + if logLevel, err := log.ParseLevel(cfg.LogLevel); err == nil { + log.Info("lvl", logLevel) + log.SetLevel(logLevel) + } +} + +func sanitizeAction(action ActionButton) { + for _, argument := range action.Arguments { + sanitizeActionArgument(argument) + } +} + +func sanitizeActionArgument(arg ActionArgument) { + log.Info("Sanitize AA") + arg.Label = "foo" + arg.Name = "blat" +} diff --git a/internal/grpcapi/grpcApi.go b/internal/grpcapi/grpcApi.go index 97b5d5c..ff78e24 100644 --- a/internal/grpcapi/grpcApi.go +++ b/internal/grpcapi/grpcApi.go @@ -56,21 +56,6 @@ func (api *oliveTinAPI) GetButtons(ctx ctx.Context, req *pb.GetButtonsRequest) ( return res, nil } -func actionButtonsCfgToPb(cfgActionButtons []config.ActionButton, user *acl.User) (*pb.GetButtonsResponse) { - res := &pb.GetButtonsResponse{} - - for _, action := range cfgActionButtons { - if !acl.IsAllowedView(cfg, user, &action) { - continue - } - - btn := buildButton(action, user) - res.Actions = append(res.Actions, btn) - } - - return res -} - func (api *oliveTinAPI) GetLogs(ctx ctx.Context, req *pb.GetLogsRequest) (*pb.GetLogsResponse, error) { ret := &pb.GetLogsResponse{} diff --git a/internal/grpcapi/grpcApiButtons.go b/internal/grpcapi/grpcApiButtons.go index 87e0fe0..0a3aba3 100644 --- a/internal/grpcapi/grpcApiButtons.go +++ b/internal/grpcapi/grpcApiButtons.go @@ -8,6 +8,21 @@ import ( config "github.com/jamesread/OliveTin/internal/config" ) +func actionButtonsCfgToPb(cfgActionButtons []config.ActionButton, user *acl.User) (*pb.GetButtonsResponse) { + res := &pb.GetButtonsResponse{} + + for _, action := range cfgActionButtons { + if !acl.IsAllowedView(cfg, user, &action) { + continue + } + + btn := buildButton(action, user) + res.Actions = append(res.Actions, btn) + } + + return res +} + func buildButton(action config.ActionButton, user *acl.User) *pb.ActionButton { btn := pb.ActionButton{ Id: fmt.Sprintf("%x", md5.Sum([]byte(action.Title))),