// Copyright (c) 2024 Mattermost Community Enterprise // Registration of SAML implementation package saml import ( "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/einterfaces" ) // SamlFactory is a function type that creates a SamlInterface type SamlFactory func(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.SamlInterface // NewSamlFactory returns a factory function for creating SAML interfaces func NewSamlFactory() SamlFactory { return func(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.SamlInterface { cfg := &SamlConfig{ Config: config, Logger: logger, ConfigDir: configDir, } return NewSamlInterface(cfg) } } // CreateSamlInterface creates a new SAML interface directly func CreateSamlInterface(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.SamlInterface { cfg := &SamlConfig{ Config: config, Logger: logger, ConfigDir: configDir, } return NewSamlInterface(cfg) }