* when plugins are disabled, still allow onboarding to complete
This commit is contained in:
Nathaniel Allred
2022-03-11 09:08:49 -06:00
committed by GitHub
parent b5e78a0ce1
commit 3531432738
2 changed files with 31 additions and 11 deletions

View File

@@ -914,4 +914,20 @@ func TestCompleteOnboarding(t *testing.T) {
}
})
t.Run("as a system admin when plugins are disabled", func(t *testing.T) {
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.PluginSettings.Enable = false
})
t.Cleanup(func() {
th.App.UpdateConfig(func(cfg *model.Config) {
*cfg.PluginSettings.Enable = true
})
})
resp, err := th.SystemAdminClient.CompleteOnboarding(req)
require.NoError(t, err)
CheckOKStatus(t, resp)
})
}

View File

@@ -14,10 +14,23 @@ import (
"github.com/mattermost/mattermost-server/v6/store"
)
func (a *App) markAdminOnboardingComplete(c *request.Context) *model.AppError {
firstAdminCompleteSetupObj := model.System{
Name: model.SystemFirstAdminSetupComplete,
Value: "true",
}
if err := a.Srv().Store.System().SaveOrUpdate(&firstAdminCompleteSetupObj); err != nil {
return model.NewAppError("setFirstAdminCompleteSetup", "api.error_set_first_admin_complete_setup", nil, err.Error(), http.StatusInternalServerError)
}
return nil
}
func (a *App) CompleteOnboarding(c *request.Context, request *model.CompleteOnboardingRequest) *model.AppError {
pluginsEnvironment := a.Channels().GetPluginsEnvironment()
if pluginsEnvironment == nil {
return model.NewAppError("CompleteOnboarding", "app.plugin.disabled.app_error", nil, "", http.StatusNotImplemented)
return a.markAdminOnboardingComplete(c)
}
pluginContext := pluginContext(c)
@@ -55,16 +68,7 @@ func (a *App) CompleteOnboarding(c *request.Context, request *model.CompleteOnbo
}(pluginID)
}
firstAdminCompleteSetupObj := model.System{
Name: model.SystemFirstAdminSetupComplete,
Value: "true",
}
if err := a.Srv().Store.System().SaveOrUpdate(&firstAdminCompleteSetupObj); err != nil {
return model.NewAppError("setFirstAdminCompleteSetup", "api.error_set_first_admin_complete_setup", nil, err.Error(), http.StatusInternalServerError)
}
return nil
return a.markAdminOnboardingComplete(c)
}
func (a *App) GetOnboarding() (*model.System, *model.AppError) {