diff --git a/Makefile b/Makefile index 0255ee8c9e..f567cc257f 100644 --- a/Makefile +++ b/Makefile @@ -119,7 +119,7 @@ TEMPLATES_DIR=templates PLUGIN_PACKAGES ?= mattermost-plugin-antivirus-v0.1.2 PLUGIN_PACKAGES += mattermost-plugin-autolink-v1.2.2 PLUGIN_PACKAGES += mattermost-plugin-aws-SNS-v1.2.0 -PLUGIN_PACKAGES += mattermost-plugin-calls-v0.5.3 +PLUGIN_PACKAGES += mattermost-plugin-calls-v0.6.0 PLUGIN_PACKAGES += mattermost-plugin-channel-export-v1.0.0 PLUGIN_PACKAGES += mattermost-plugin-custom-attributes-v1.3.0 PLUGIN_PACKAGES += mattermost-plugin-github-v2.0.1 diff --git a/app/plugin.go b/app/plugin.go index 9fb043c5b1..85fc3db292 100644 --- a/app/plugin.go +++ b/app/plugin.go @@ -1121,8 +1121,8 @@ func (ch *Channels) getPluginStateOverride(pluginID string) (bool, bool) { return true, false } case model.PluginIdCalls: - if model.IsCloud() { - return true, ch.cfgSvc.Config().FeatureFlags.CallsEnabled + if !ch.cfgSvc.Config().FeatureFlags.CallsEnabled { + return true, false } } diff --git a/app/plugin_test.go b/app/plugin_test.go index 1633d48bc6..4dec6efd66 100644 --- a/app/plugin_test.go +++ b/app/plugin_test.go @@ -1053,7 +1053,7 @@ func TestGetPluginStateOverride(t *testing.T) { os.Setenv("MM_CLOUD_INSTALLATION_ID", "test") defer os.Unsetenv("MM_CLOUD_INSTALLATION_ID") overrides, value := th.App.ch.getPluginStateOverride("com.mattermost.calls") - require.True(t, overrides) + require.False(t, overrides) require.False(t, value) }) @@ -1067,8 +1067,8 @@ func TestGetPluginStateOverride(t *testing.T) { defer th2.TearDown() overrides, value := th2.App.ch.getPluginStateOverride("com.mattermost.calls") - require.True(t, overrides) - require.True(t, value) + require.False(t, overrides) + require.False(t, value) }) t.Run("Cloud, with enabled flag set to false", func(t *testing.T) { @@ -1084,6 +1084,18 @@ func TestGetPluginStateOverride(t *testing.T) { require.True(t, overrides) require.False(t, value) }) + + t.Run("On-prem, with enabled flag set to false", func(t *testing.T) { + os.Setenv("MM_FEATUREFLAGS_CALLSENABLED", "false") + defer os.Unsetenv("MM_FEATUREFLAGS_CALLSENABLED") + + th2 := Setup(t) + defer th2.TearDown() + + overrides, value := th2.App.ch.getPluginStateOverride("com.mattermost.calls") + require.True(t, overrides) + require.False(t, value) + }) }) t.Run("apps override", func(t *testing.T) { diff --git a/config/diff_test.go b/config/diff_test.go index 0def47fa7e..a850af4022 100644 --- a/config/diff_test.go +++ b/config/diff_test.go @@ -816,6 +816,9 @@ func TestDiff(t *testing.T) { "com.mattermost.apps": { Enable: true, }, + "com.mattermost.calls": { + Enable: true, + }, }, }, }, @@ -851,6 +854,9 @@ func TestDiff(t *testing.T) { "com.mattermost.apps": { Enable: true, }, + "com.mattermost.calls": { + Enable: true, + }, }, }, }, @@ -878,6 +884,9 @@ func TestDiff(t *testing.T) { "com.mattermost.apps": { Enable: true, }, + "com.mattermost.calls": { + Enable: true, + }, }, }, }, diff --git a/model/config.go b/model/config.go index 272f09d787..ce929fc6a5 100644 --- a/model/config.go +++ b/model/config.go @@ -2810,8 +2810,8 @@ func (s *PluginSettings) SetDefaults(ls LogSettings) { s.PluginStates[PluginIdApps] = &PluginState{Enable: true} } - if s.PluginStates[PluginIdCalls] == nil && IsCloud() { - // Enable the calls plugin by default on Cloud only + if s.PluginStates[PluginIdCalls] == nil { + // Enable the calls plugin by default s.PluginStates[PluginIdCalls] = &PluginState{Enable: true} } diff --git a/model/config_test.go b/model/config_test.go index b0d6aea75b..8479dfb89c 100644 --- a/model/config_test.go +++ b/model/config_test.go @@ -1505,11 +1505,11 @@ func TestConfigServiceSettingsIsValid(t *testing.T) { } func TestConfigDefaultCallsPluginState(t *testing.T) { - t.Run("should not enable Calls plugin by default when not in Cloud", func(t *testing.T) { + t.Run("should enable Calls plugin by default on self-hosted", func(t *testing.T) { c1 := Config{} c1.SetDefaults() - assert.Nil(t, c1.PluginSettings.PluginStates["com.mattermost.calls"]) + assert.True(t, c1.PluginSettings.PluginStates["com.mattermost.calls"].Enable) }) t.Run("should enable Calls plugin by default on Cloud", func(t *testing.T) { @@ -1522,8 +1522,6 @@ func TestConfigDefaultCallsPluginState(t *testing.T) { }) t.Run("should not re-enable Calls plugin after it has been disabled", func(t *testing.T) { - os.Setenv("MM_CLOUD_INSTALLATION_ID", "test") - defer os.Unsetenv("MM_CLOUD_INSTALLATION_ID") c1 := Config{ PluginSettings: PluginSettings{ PluginStates: map[string]*PluginState{ diff --git a/model/feature_flags.go b/model/feature_flags.go index 40dd73c14a..2fa264f444 100644 --- a/model/feature_flags.go +++ b/model/feature_flags.go @@ -95,6 +95,7 @@ func (f *FeatureFlags) SetDefaults() { f.CloudFree = false f.CommandPalette = false f.AdvancedTextEditor = false + f.CallsEnabled = true } func (f *FeatureFlags) Plugins() map[string]string {