package controllers import ( keycloakv1alpha1 "git.zom.bi/images/keycloak-operator/api/v1alpha1" "github.com/Nerzal/gocloak/v7" ) // ConvertToClient takes a CRD representation and converts it into a datatype // that can be understood by GoCloak. func ConvertToClient(clientCrd keycloakv1alpha1.KeycloakClient) (gocloak.Client, error) { var client gocloak.Client clientSpec := clientCrd.Spec // Mandatory Properties client.ClientID = &clientSpec.ClientID // Optional Properties client.Enabled = clientSpec.Enabled client.Name = clientSpec.Name client.Description = clientSpec.Description client.Protocol = clientSpec.Protocol client.ClientAuthenticatorType = clientSpec.ClientAuthenticatorType client.DirectAccessGrantsEnabled = clientSpec.DirectAccessGrantsEnabled client.PublicClient = clientSpec.PublicClient client.ImplicitFlowEnabled = clientSpec.ImplicitFlowEnabled client.StandardFlowEnabled = clientSpec.StandardFlowEnabled client.ServiceAccountsEnabled = clientSpec.ServiceAccountsEnabled client.RegistrationAccessToken = clientSpec.RegistrationAccessToken client.SurrogateAuthRequired = clientSpec.SurrogateAuthRequired client.BearerOnly = clientSpec.BearerOnly client.ConsentRequired = clientSpec.ConsentRequired client.DefaultClientScopes = clientSpec.DefaultClientScopes client.OptionalClientScopes = clientSpec.OptionalClientScopes client.BaseURL = clientSpec.BaseURL client.RootURL = clientSpec.RootURL client.AdminURL = clientSpec.AdminURL client.RedirectURIs = clientSpec.RedirectURIs client.WebOrigins = clientSpec.WebOrigins if clientSpec.Secret != nil { // TODO // client.Secret = "" } // client.Access = "" // client.Attributes = "" // client.AuthenticationFlowBindingOverrides = "" // client.AuthorizationServicesEnabled = "" // client.AuthorizationSettings = "" // client.DefaultRoles = "" // client.FrontChannelLogout = "" // client.FullScopeAllowed = "" // client.ID = "" // client.NodeReRegistrationTimeout = "" // client.NotBefore = "" // client.Origin = "" // client.ProtocolMappers = "" // client.RegisteredNodes = "" return client, nil }