From 97e4450102a75866152846234a7e4707736fe78c Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Fri, 28 Aug 2020 16:26:15 +0200 Subject: [PATCH] Add role service to options --- pkg/service/v0/option.go | 13 +++++++++++-- pkg/service/v0/service.go | 11 +++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/pkg/service/v0/option.go b/pkg/service/v0/option.go index 7126aeed47..f0c5ece769 100644 --- a/pkg/service/v0/option.go +++ b/pkg/service/v0/option.go @@ -3,6 +3,7 @@ package service import ( "github.com/owncloud/ocis-accounts/pkg/config" "github.com/owncloud/ocis-pkg/v2/log" + settings "github.com/owncloud/ocis-settings/pkg/proto/v0" ) // Option defines a single option function. @@ -10,8 +11,9 @@ type Option func(o *Options) // Options defines the available options for this package. type Options struct { - Logger log.Logger - Config *config.Config + Logger log.Logger + Config *config.Config + RoleService settings.RoleService } func newOptions(opts ...Option) Options { @@ -37,3 +39,10 @@ func Config(val *config.Config) Option { o.Config = val } } + +// RoleService provides a function to set the role service option. +func RoleService(val settings.RoleService) Option { + return func(o *Options) { + o.RoleService = val + } +} diff --git a/pkg/service/v0/service.go b/pkg/service/v0/service.go index 44997e5c0e..9fc2ad3584 100644 --- a/pkg/service/v0/service.go +++ b/pkg/service/v0/service.go @@ -31,6 +31,10 @@ func New(opts ...Option) (s *Service, err error) { options := newOptions(opts...) logger := options.Logger cfg := options.Config + roleService := options.RoleService + if roleService == nil { + roleService = settings.NewRoleService("com.owncloud.api.settings", mgrpc.NewClient()) + } // read all user and group records accountsDir := filepath.Join(cfg.Server.AccountsDataPath, "accounts") @@ -169,19 +173,18 @@ func New(opts ...Option) (s *Service, err error) { } // set role for admin users and regular users - rs := settings.NewRoleService("com.owncloud.api.settings", mgrpc.NewClient()) - assignRoleToUser("058bff95-6708-4fe5-91e4-9ea3d377588b", settings_svc.BundleUUIDRoleAdmin, rs, logger) + assignRoleToUser("058bff95-6708-4fe5-91e4-9ea3d377588b", settings_svc.BundleUUIDRoleAdmin, roleService, logger) for _, accountID := range []string{ "058bff95-6708-4fe5-91e4-9ea3d377588b",//moss } { - assignRoleToUser(accountID, settings_svc.BundleUUIDRoleAdmin, rs, logger) + assignRoleToUser(accountID, settings_svc.BundleUUIDRoleAdmin, roleService, logger) } for _, accountID := range []string{ "4c510ada-c86b-4815-8820-42cdf82c3d51",//einstein "f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c",//marie "932b4540-8d16-481e-8ef4-588e4b6b151c",//richard } { - assignRoleToUser(accountID, settings_svc.BundleUUIDRoleUser, rs, logger) + assignRoleToUser(accountID, settings_svc.BundleUUIDRoleUser, roleService, logger) } } } else if !fi.IsDir() {