func()

in teamcity/auth.go [396:488]


func (r *authResource) readState(result client.AuthSettings) (authResourceModel, error) {
	var state authResourceModel

	state.AllowGuest = types.BoolValue(result.AllowGuest)
	state.GuestUsername = types.StringValue(result.GuestUsername)
	state.WelcomeText = types.StringValue(result.WelcomeText)
	state.CollapseLoginForm = types.BoolValue(result.CollapseLoginForm)
	//state.TwoFactorMode = types.StringValue(result.TwoFactorMode)
	state.PerProjectPermissions = types.BoolValue(result.PerProjectPermissions)
	state.EmailVerification = types.BoolValue(result.EmailVerification)

	for _, module := range result.Modules.Module {
		props := make(map[string]string)
		for _, p := range module.Properties.Property {
			props[p.Name] = p.Value
		}

		if module.Name == "Token-Auth" {
			state.Modules.Token = &authModuleTokenModel{}
			continue
		}

		if module.Name == "Default" {
			state.Modules.BuiltIn = &authModuleBuiltInModel{}
			err := state.Modules.BuiltIn.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "HTTP-Basic" {
			state.Modules.BasicHTTP = &authModuleBasicHTTPModel{}
			continue
		}

		if module.Name == "Google-oauth" {
			state.Modules.Google = &authModuleGoogleModel{}
			err := state.Modules.Google.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "GitHubApp-oauth" {
			state.Modules.GithubApp = &authModuleGithubAppModel{}
			err := state.Modules.GithubApp.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "GitHub-oauth" {
			state.Modules.GithubCom = &authModuleGithubModel{}
			err := state.Modules.GithubCom.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "GHE-oauth" {
			state.Modules.GithubEnterprise = &authModuleGithubModel{}
			err := state.Modules.GithubEnterprise.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "JetbrainsSpace-oauth" {
			state.Modules.Space = &authModuleSpaceModel{}
			err := state.Modules.Space.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}

		if module.Name == "LDAP" {
			state.Modules.LDAP = &authModuleLDAPModel{}
			err := state.Modules.LDAP.setFields(props)
			if err != nil {
				return authResourceModel{}, err
			}
			continue
		}
	}

	return state, nil
}