From cf1df99a101fbe0e111f70eb6cba5502ff7737cf Mon Sep 17 00:00:00 2001 From: adlerhurst Date: Mon, 30 Nov 2020 10:41:10 +0100 Subject: [PATCH] fix idp mappers --- internal/v2/business/iam/converter.go | 10 ++++++- internal/v2/business/iam/idp_config.go | 26 ++++++++++++------- internal/v2/repository/iam/eventstore.go | 9 ++++++- internal/v2/repository/iam/idp_oidc_config.go | 4 +-- .../v2/repository/idp/oidc/event_added.go | 4 +++ .../v2/repository/idp/oidc/event_changed.go | 4 +++ internal/v2/repository/policy/label.go | 4 --- internal/v2/repository/policy/login.go | 4 --- 8 files changed, 43 insertions(+), 22 deletions(-) diff --git a/internal/v2/business/iam/converter.go b/internal/v2/business/iam/converter.go index d5db6d579..a39183490 100644 --- a/internal/v2/business/iam/converter.go +++ b/internal/v2/business/iam/converter.go @@ -24,7 +24,7 @@ func readModelToIAM(readModel *iam_repo.ReadModel) *model.IAM { DefaultPasswordAgePolicy: readModelToPasswordAgePolicy(&readModel.DefaultPasswordAgePolicy), DefaultPasswordComplexityPolicy: readModelToPasswordComplexityPolicy(&readModel.DefaultPasswordComplexityPolicy), DefaultPasswordLockoutPolicy: readModelToPasswordLockoutPolicy(&readModel.DefaultPasswordLockoutPolicy), - // TODO: IDPs: []*model.IDPConfig, + IDPs: readModelToIDPConfigs(&readModel.IDPs), } } @@ -155,6 +155,14 @@ func readModelToIDPConfigView(rm *iam.IDPConfigReadModel) *model.IDPConfigView { } } +func readModelToIDPConfigs(rm *iam.IDPConfigsReadModel) []*model.IDPConfig { + configs := make([]*model.IDPConfig, len(rm.Configs)) + for i, config := range rm.Configs { + configs[i] = readModelToIDPConfig(&iam.IDPConfigReadModel{ConfigReadModel: *config}) + } + return configs +} + func readModelToIDPConfig(rm *iam.IDPConfigReadModel) *model.IDPConfig { return &model.IDPConfig{ ObjectRoot: readModelToObjectRoot(rm.ReadModel), diff --git a/internal/v2/business/iam/idp_config.go b/internal/v2/business/iam/idp_config.go index 61a632b2c..d4762e6ee 100644 --- a/internal/v2/business/iam/idp_config.go +++ b/internal/v2/business/iam/idp_config.go @@ -39,15 +39,22 @@ func (r *Repository) AddIDPConfig(ctx context.Context, config *iam_model.IDPConf } writeModel, err := r.pushIDPWriteModel(ctx, config.AggregateID, idpConfigID, func(a *iam.Aggregate, _ *iam.IDPConfigWriteModel) *iam.Aggregate { - return a.PushIDPOIDCConfigAdded( - ctx, - config.OIDCConfig.ClientID, - idpConfigID, - config.OIDCConfig.Issuer, - clientSecret, - oidc.MappingField(config.OIDCConfig.IDPDisplayNameMapping), - oidc.MappingField(config.OIDCConfig.UsernameMapping), - config.OIDCConfig.Scopes...) + return a. + PushIDPConfigAdded( + ctx, + idpConfigID, + config.Name, + idp.ConfigType(config.Type), + idp.StylingType(config.StylingType)). + PushIDPOIDCConfigAdded( + ctx, + config.OIDCConfig.ClientID, + idpConfigID, + config.OIDCConfig.Issuer, + clientSecret, + oidc.MappingField(config.OIDCConfig.IDPDisplayNameMapping), + oidc.MappingField(config.OIDCConfig.UsernameMapping), + config.OIDCConfig.Scopes...) }) if err != nil { return nil, err @@ -114,7 +121,6 @@ func (r *Repository) pushIDPWriteModel(ctx context.Context, iamID, idpID string, } aggregate := eventSetter(iam.AggregateFromWriteModel(&writeModel.WriteModel), writeModel) - err = r.eventstore.PushAggregate(ctx, writeModel, aggregate) if err != nil { return nil, err diff --git a/internal/v2/repository/iam/eventstore.go b/internal/v2/repository/iam/eventstore.go index 3d2a3d0e1..1994adb22 100644 --- a/internal/v2/repository/iam/eventstore.go +++ b/internal/v2/repository/iam/eventstore.go @@ -22,5 +22,12 @@ func RegisterEventMappers(es *eventstore.Eventstore) { RegisterFilterEventMapper(PasswordLockoutPolicyChangedEventType, PasswordLockoutPolicyChangedEventMapper). RegisterFilterEventMapper(MemberAddedEventType, MemberAddedEventMapper). RegisterFilterEventMapper(MemberChangedEventType, MemberChangedEventMapper). - RegisterFilterEventMapper(MemberRemovedEventType, MemberRemovedEventMapper) + RegisterFilterEventMapper(MemberRemovedEventType, MemberRemovedEventMapper). + RegisterFilterEventMapper(IDPConfigAddedEventType, IDPConfigAddedEventMapper). + RegisterFilterEventMapper(IDPConfigChangedEventType, IDPConfigChangedEventMapper). + RegisterFilterEventMapper(IDPConfigRemovedEventType, IDPConfigRemovedEventMapper). + RegisterFilterEventMapper(IDPConfigDeactivatedEventType, IDPConfigDeactivatedEventMapper). + RegisterFilterEventMapper(IDPConfigReactivatedEventType, IDPConfigReactivatedEventMapper). + RegisterFilterEventMapper(IDPOIDCConfigAddedEventType, IDPOIDCConfigAddedEventMapper). + RegisterFilterEventMapper(IDPOIDCConfigChangedEventType, IDPOIDCConfigChangedEventMapper) } diff --git a/internal/v2/repository/iam/idp_oidc_config.go b/internal/v2/repository/iam/idp_oidc_config.go index 69c234132..7781a6798 100644 --- a/internal/v2/repository/iam/idp_oidc_config.go +++ b/internal/v2/repository/iam/idp_oidc_config.go @@ -10,8 +10,8 @@ import ( ) const ( - IDPOIDCConfigAddedEventType eventstore.EventType = "iam.idp.oidc.config.added" - IDPOIDCConfigChangedEventType eventstore.EventType = "iam.idp.oidc.config.changed" + IDPOIDCConfigAddedEventType eventstore.EventType = "iam.idp." + oidc.ConfigAddedEventType + IDPOIDCConfigChangedEventType eventstore.EventType = "iam.idp." + oidc.ConfigChangedEventType ) type IDPOIDCConfigWriteModel struct { diff --git a/internal/v2/repository/idp/oidc/event_added.go b/internal/v2/repository/idp/oidc/event_added.go index a0cb47205..31d409511 100644 --- a/internal/v2/repository/idp/oidc/event_added.go +++ b/internal/v2/repository/idp/oidc/event_added.go @@ -9,6 +9,10 @@ import ( "github.com/caos/zitadel/internal/eventstore/v2/repository" ) +const ( + ConfigAddedEventType eventstore.EventType = "oidc.config.added" +) + type ConfigAddedEvent struct { eventstore.BaseEvent diff --git a/internal/v2/repository/idp/oidc/event_changed.go b/internal/v2/repository/idp/oidc/event_changed.go index 670f267e5..6e64148f9 100644 --- a/internal/v2/repository/idp/oidc/event_changed.go +++ b/internal/v2/repository/idp/oidc/event_changed.go @@ -11,6 +11,10 @@ import ( "github.com/caos/zitadel/internal/eventstore/v2/repository" ) +const ( + ConfigChangedEventType eventstore.EventType = "oidc.config.changed" +) + type ConfigChangedEvent struct { eventstore.BaseEvent `json:"-"` diff --git a/internal/v2/repository/policy/label.go b/internal/v2/repository/policy/label.go index 2454ca3ab..cf4a25e7a 100644 --- a/internal/v2/repository/policy/label.go +++ b/internal/v2/repository/policy/label.go @@ -14,10 +14,6 @@ const ( LabelPolicyRemovedEventType = "policy.label.removed" ) -type LabelPolicyAggregate struct { - eventstore.Aggregate -} - type LabelPolicyReadModel struct { eventstore.ReadModel diff --git a/internal/v2/repository/policy/login.go b/internal/v2/repository/policy/login.go index 1170e0df3..0c5d63e19 100644 --- a/internal/v2/repository/policy/login.go +++ b/internal/v2/repository/policy/login.go @@ -17,10 +17,6 @@ const ( LoginPolicyIDPProviderRemovedEventType = "policy.login." + provider.RemovedEventType ) -type LoginPolicyAggregate struct { - eventstore.Aggregate -} - type LoginPolicyReadModel struct { eventstore.ReadModel