mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-06-17 08:50:13 +00:00
fix: don't use pointers in interfaces
This commit is contained in:
@@ -15,11 +15,16 @@ func (app *BootstrapApp) setupServices() error {
|
|||||||
return fmt.Errorf("failed to setup policy engine: %w", err)
|
return fmt.Errorf("failed to setup policy engine: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = app.dig.Provide(app.getLabelProvider)
|
labelProvider, err := app.getLabelProvider()
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to provide label provider: %w", err)
|
return fmt.Errorf("failed to get label provider: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = app.dig.Provide(func() service.LabelProvider {
|
||||||
|
return labelProvider
|
||||||
|
})
|
||||||
|
|
||||||
err = app.dig.Provide(service.NewLdapService)
|
err = app.dig.Provide(service.NewLdapService)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to provide ldap service: %w", err)
|
return fmt.Errorf("failed to provide ldap service: %w", err)
|
||||||
@@ -107,6 +112,15 @@ func (app *BootstrapApp) getLabelProvider() (service.LabelProvider, error) {
|
|||||||
return nil, fmt.Errorf("failed to invoke kubernetes service: %w", err)
|
return nil, fmt.Errorf("failed to invoke kubernetes service: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Kubernetes will fail to initialize with an error if it cannot connect to the cluster
|
||||||
|
// but just to be safe, we check if the service is nil and log a warning if it is
|
||||||
|
if app.services.kubernetesService == nil {
|
||||||
|
if app.config.LabelProvider == "kubernetes" {
|
||||||
|
app.log.App.Warn().Msg("Kubernetes label provider selected but Kubernetes is not available, will continue without it")
|
||||||
|
}
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
return app.services.kubernetesService, nil
|
return app.services.kubernetesService, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ type LabelProvider interface {
|
|||||||
type AccessControlsService struct {
|
type AccessControlsService struct {
|
||||||
log *logger.Logger
|
log *logger.Logger
|
||||||
config *model.Config
|
config *model.Config
|
||||||
labelProvider *LabelProvider
|
labelProvider LabelProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
type AccessControlServiceInput struct {
|
type AccessControlServiceInput struct {
|
||||||
@@ -23,7 +23,7 @@ type AccessControlServiceInput struct {
|
|||||||
|
|
||||||
Log *logger.Logger
|
Log *logger.Logger
|
||||||
Config *model.Config
|
Config *model.Config
|
||||||
LabelProvider *LabelProvider `optional:"true"`
|
LabelProvider LabelProvider `optional:"true"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAccessControlsService(i AccessControlServiceInput) *AccessControlsService {
|
func NewAccessControlsService(i AccessControlServiceInput) *AccessControlsService {
|
||||||
@@ -63,8 +63,8 @@ func (service *AccessControlsService) GetAccessControls(domain string) (*model.A
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If we have a label provider configured, try to get ACLs from it
|
// If we have a label provider configured, try to get ACLs from it
|
||||||
if service.labelProvider != nil && *service.labelProvider != nil {
|
if service.labelProvider != nil {
|
||||||
return (*service.labelProvider).GetLabels(domain)
|
return service.labelProvider.GetLabels(domain)
|
||||||
}
|
}
|
||||||
|
|
||||||
// no labels
|
// no labels
|
||||||
|
|||||||
Reference in New Issue
Block a user