diff options
author | Wim <wim@42.be> | 2021-10-17 00:47:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-17 00:47:22 +0200 |
commit | 4dd8bae5c91fa4aef09d865d8fef1acd84f90925 (patch) | |
tree | ffad9b242daccaf8c86d1c1fbd59032302bd3be9 /vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go | |
parent | 7ae45c42e712bd0e66c101f3f714c05aa1dc2104 (diff) | |
download | matterbridge-msglm-4dd8bae5c91fa4aef09d865d8fef1acd84f90925.tar.gz matterbridge-msglm-4dd8bae5c91fa4aef09d865d8fef1acd84f90925.tar.bz2 matterbridge-msglm-4dd8bae5c91fa4aef09d865d8fef1acd84f90925.zip |
Update dependencies (#1610)
* Update dependencies
* Update module to go 1.17
Diffstat (limited to 'vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go')
-rw-r--r-- | vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go b/vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go index 316c7ffb..7d3d6680 100644 --- a/vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go +++ b/vendor/github.com/mattermost/mattermost-server/v5/model/feature_flags.go @@ -3,16 +3,92 @@ package model +import ( + "reflect" + "strconv" +) + type FeatureFlags struct { // Exists only for unit and manual testing. // When set to a value, will be returned by the ping endpoint. TestFeature string + // Exists only for testing bool functionality. Boolean feature flags interpret "on" or "true" as true and + // all other values as false. + TestBoolFeature bool // Toggle on and off scheduled jobs for cloud user limit emails see MM-29999 CloudDelinquentEmailJobsEnabled bool + + // Toggle on and off support for Collapsed Threads + CollapsedThreads bool + + // Enable the remote cluster service for shared channels. + EnableRemoteClusterService bool + + // AppsEnabled toggle the Apps framework functionalities both in server and client side + AppsEnabled bool + + // Feature flags to control plugin versions + PluginIncidentManagement string `plugin_id:"com.mattermost.plugin-incident-management"` + PluginApps string `plugin_id:"com.mattermost.apps"` + PluginFocalboard string `plugin_id:"focalboard"` + + // Enable timed dnd support for user status + TimedDND bool } func (f *FeatureFlags) SetDefaults() { f.TestFeature = "off" + f.TestBoolFeature = false f.CloudDelinquentEmailJobsEnabled = false + f.CollapsedThreads = true + f.EnableRemoteClusterService = false + f.AppsEnabled = false + f.PluginIncidentManagement = "1.16.1" + f.PluginApps = "" + f.PluginFocalboard = "" + f.TimedDND = false +} + +func (f *FeatureFlags) Plugins() map[string]string { + rFFVal := reflect.ValueOf(f).Elem() + rFFType := reflect.TypeOf(f).Elem() + + pluginVersions := make(map[string]string) + for i := 0; i < rFFVal.NumField(); i++ { + rFieldVal := rFFVal.Field(i) + rFieldType := rFFType.Field(i) + + pluginId, hasPluginId := rFieldType.Tag.Lookup("plugin_id") + if !hasPluginId { + continue + } + + pluginVersions[pluginId] = rFieldVal.String() + } + + return pluginVersions +} + +// ToMap returns the feature flags as a map[string]string +// Supports boolean and string feature flags. +func (f *FeatureFlags) ToMap() map[string]string { + refStructVal := reflect.ValueOf(*f) + refStructType := reflect.TypeOf(*f) + ret := make(map[string]string) + for i := 0; i < refStructVal.NumField(); i++ { + refFieldVal := refStructVal.Field(i) + if !refFieldVal.IsValid() { + continue + } + refFieldType := refStructType.Field(i) + switch refFieldType.Type.Kind() { + case reflect.Bool: + ret[refFieldType.Name] = strconv.FormatBool(refFieldVal.Bool()) + default: + ret[refFieldType.Name] = refFieldVal.String() + } + } + + return ret } |