From 64085f96b1b52c20e90410e19d0b61beb7f3f294 Mon Sep 17 00:00:00 2001 From: Mumbi Francis Date: Mon, 12 Feb 2024 17:59:17 +0300 Subject: [PATCH] Add theme to existing and new users' metadata --- server/pkg/provision/provision.go | 1 + server/pkg/provision/users.go | 29 +++++++++++++++++++++++++++++ server/system/service/user.go | 4 ++++ 3 files changed, 34 insertions(+) diff --git a/server/pkg/provision/provision.go b/server/pkg/provision/provision.go index 6b7ba08c2..727ffb226 100644 --- a/server/pkg/provision/provision.go +++ b/server/pkg/provision/provision.go @@ -41,6 +41,7 @@ func Run(ctx context.Context, log *zap.Logger, s store.Storer, provisionOpt opti func() error { return defaultAuthClient(ctx, log.Named("auth.clients"), s, authOpt) }, func() error { return addAuthSuperUsers(ctx, log.Named("auth.super-users"), s, authOpt) }, func() error { return invalidateDedupRules(ctx, log.Named("compose.deduplication"), s) }, + func() error { return setUsersTheme(ctx, log.Named("users.theme"), s) }, func() error { return updateWebappTheme(ctx, log.Named("webapp.themes"), s) }, } diff --git a/server/pkg/provision/users.go b/server/pkg/provision/users.go index 3cd0f85a2..d2389b28b 100644 --- a/server/pkg/provision/users.go +++ b/server/pkg/provision/users.go @@ -8,6 +8,7 @@ import ( "github.com/cortezaproject/corteza/server/pkg/filter" "github.com/cortezaproject/corteza/server/pkg/id" "github.com/cortezaproject/corteza/server/pkg/logger" + "github.com/cortezaproject/corteza/server/pkg/sass" "github.com/cortezaproject/corteza/server/store" "github.com/cortezaproject/corteza/server/system/types" "go.uber.org/zap" @@ -101,3 +102,31 @@ func loadSystemUsers(ctx context.Context, s store.Users) (m map[string]*types.Us return } + +func setUsersTheme(ctx context.Context, log *zap.Logger, s store.Users) (err error) { + var ( + f = types.UserFilter{ + Deleted: filter.StateInclusive, + } + + users []*types.User + ) + + if set, _, err := store.SearchUsers(ctx, s, f); err == nil { + for _, r := range set { + if r.Meta.Theme == "" { + r.Meta.Theme = sass.LightTheme + + users = append(users, r) + } + } + } + + err = store.UpdateUser(ctx, s, users...) + if err != nil { + log.Error("error provisioning users theme", zap.Error(err)) + return err + } + + return nil +} diff --git a/server/system/service/user.go b/server/system/service/user.go index 2fda84051..e5d93f456 100644 --- a/server/system/service/user.go +++ b/server/system/service/user.go @@ -19,6 +19,7 @@ import ( "github.com/cortezaproject/corteza/server/pkg/filter" "github.com/cortezaproject/corteza/server/pkg/handle" "github.com/cortezaproject/corteza/server/pkg/label" + "github.com/cortezaproject/corteza/server/pkg/sass" "github.com/cortezaproject/corteza/server/store" "github.com/cortezaproject/corteza/server/system/service/event" "github.com/cortezaproject/corteza/server/system/types" @@ -387,6 +388,9 @@ func (svc user) Create(ctx context.Context, new *types.User) (u *types.User, err return } + //add default user's theme + new.Meta.Theme = sass.LightTheme + // Process avatar initials Image if err = svc.generateUserAvatarInitial(ctx, new); err != nil { return