func()

in teamcity/auth.go [314:394]


func (r *authResource) update(plan authResourceModel) (authResourceModel, error) {
	settings := client.AuthSettings{
		AllowGuest:        plan.AllowGuest.ValueBool(),
		GuestUsername:     plan.GuestUsername.ValueString(),
		WelcomeText:       plan.WelcomeText.ValueString(),
		CollapseLoginForm: plan.CollapseLoginForm.ValueBool(),
		//TwoFactorMode:         plan.TwoFactorMode.ValueString(),
		PerProjectPermissions: plan.PerProjectPermissions.ValueBool(),
		EmailVerification:     plan.EmailVerification.ValueBool(),
	}

	if plan.Modules.Token != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{Name: "Token-Auth"})
	}
	if plan.Modules.BuiltIn != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "Default",
			Properties: &models.Properties{
				Property: plan.Modules.BuiltIn.getProperties(),
			},
		})
	}
	if plan.Modules.BasicHTTP != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{Name: "HTTP-Basic"})
	}
	if plan.Modules.Google != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "Google-oauth",
			Properties: &models.Properties{
				Property: plan.Modules.Google.getProperties(),
			},
		})
	}
	if plan.Modules.GithubApp != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "GitHubApp-oauth",
			Properties: &models.Properties{
				Property: plan.Modules.GithubApp.getProperties(),
			},
		})
	}
	if plan.Modules.GithubCom != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "GitHub-oauth",
			Properties: &models.Properties{
				Property: plan.Modules.GithubCom.getProperties(),
			},
		})
	}
	if plan.Modules.GithubEnterprise != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "GHE-oauth",
			Properties: &models.Properties{
				Property: plan.Modules.GithubEnterprise.getProperties(),
			},
		})
	}
	if plan.Modules.Space != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "JetbrainsSpace-oauth",
			Properties: &models.Properties{
				Property: plan.Modules.Space.getProperties(),
			},
		})
	}
	if plan.Modules.LDAP != nil {
		settings.Modules.Module = append(settings.Modules.Module, client.Module{
			Name: "LDAP",
			Properties: &models.Properties{
				Property: plan.Modules.LDAP.getProperties(),
			},
		})
	}

	result, err := r.client.SetAuthSettings(settings)
	if err != nil {
		return authResourceModel{}, err
	}

	return r.readState(result)
}