// Copyright (c) 2024 Mattermost Community Enterprise // Registration of IP Filtering implementation package ip_filtering import ( "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/einterfaces" ) // IPFilteringFactory is a function type that creates an IPFilteringInterface type IPFilteringFactory func(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.IPFilteringInterface // NewIPFilteringFactory returns a factory function for creating IPFiltering interfaces func NewIPFilteringFactory() IPFilteringFactory { return func(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.IPFilteringInterface { cfg := &IPFilteringConfig{ Config: config, Logger: logger, ConfigDir: configDir, } return NewIPFilteringInterface(cfg) } } // CreateIPFilteringInterface creates a new IPFiltering interface directly func CreateIPFilteringInterface(config func() *model.Config, logger mlog.LoggerIFace, configDir string) einterfaces.IPFilteringInterface { cfg := &IPFilteringConfig{ Config: config, Logger: logger, ConfigDir: configDir, } return NewIPFilteringInterface(cfg) }