fix: idp provider

This commit is contained in:
Fabiennne
2020-12-15 12:00:53 +01:00
parent 6532072288
commit 762941f0ea
13 changed files with 82 additions and 192 deletions

View File

@@ -15,9 +15,9 @@ import (
"github.com/caos/zitadel/internal/v2/repository/iam/policy/password_lockout"
"github.com/caos/zitadel/internal/v2/repository/idp"
"github.com/caos/zitadel/internal/v2/repository/idp/oidc"
"github.com/caos/zitadel/internal/v2/repository/idp/provider"
"github.com/caos/zitadel/internal/v2/repository/policy/login"
"github.com/caos/zitadel/internal/v2/repository/policy/login/factors"
idpprovider2 "github.com/caos/zitadel/internal/v2/repository/policy/login/idpprovider"
)
const (
@@ -283,7 +283,7 @@ func (a *Aggregate) PushIDPOIDCConfigChanged(
func (a *Aggregate) PushLoginPolicyIDPProviderAddedEvent(
ctx context.Context,
idpConfigID string,
providerType provider.Type,
providerType idpprovider2.Type,
) *Aggregate {
a.Aggregate = *a.PushEvents(idpprovider.NewAddedEvent(ctx, idpConfigID, providerType))
@@ -293,7 +293,7 @@ func (a *Aggregate) PushLoginPolicyIDPProviderAddedEvent(
func (a *Aggregate) PushLoginPolicyIDPProviderRemovedEvent(
ctx context.Context,
idpConfigID string,
providerType provider.Type,
providerType idpprovider2.Type,
) *Aggregate {
a.Aggregate = *a.PushEvents(idpprovider.NewRemovedEvent(ctx, idpConfigID))

View File

@@ -7,7 +7,6 @@ import (
"github.com/caos/zitadel/internal/eventstore/v2"
"github.com/caos/zitadel/internal/eventstore/v2/repository"
"github.com/caos/zitadel/internal/v2/repository/idp/provider"
)
type AddedEvent struct {
@@ -17,7 +16,7 @@ type AddedEvent struct {
func NewAddedEvent(
ctx context.Context,
idpConfigID string,
idpProviderType provider.Type,
idpProviderType idpprovider.Type,
) *AddedEvent {
return &AddedEvent{

View File

@@ -10,57 +10,39 @@ const (
)
type WriteModel struct {
eventstore.WriteModel
Provider idpprovider.WriteModel
idpConfigID string
iamID string
idpprovider.WriteModel
IsRemoved bool
}
func NewWriteModel(iamID, idpConfigID string) *WriteModel {
return &WriteModel{
iamID: iamID,
idpConfigID: idpConfigID,
WriteModel: idpprovider.WriteModel{
WriteModel: eventstore.WriteModel{
AggregateID: iamID,
},
IDPConfigID: idpConfigID,
},
IsRemoved: false,
}
}
func (wm *WriteModel) AppendEvents(events ...eventstore.EventReader) {
wm.WriteModel.AppendEvents(events...)
for _, event := range events {
switch e := event.(type) {
case *AddedEvent:
if e.IDPConfigID != wm.idpConfigID {
if e.IDPConfigID != wm.IDPConfigID {
continue
}
wm.Provider.AppendEvents(&e.AddedEvent)
wm.WriteModel.AppendEvents(&e.AddedEvent)
}
}
}
func (wm *WriteModel) Reduce() error {
for _, event := range wm.Events {
switch e := event.(type) {
case *AddedEvent:
if e.IDPConfigID != wm.idpConfigID {
continue
}
wm.IsRemoved = false
case *RemovedEvent:
if e.IDPConfigID != wm.idpConfigID {
continue
}
wm.IsRemoved = true
}
}
if err := wm.Provider.Reduce(); err != nil {
return err
}
return wm.WriteModel.Reduce()
}
func (wm *WriteModel) Query() *eventstore.SearchQueryBuilder {
return eventstore.NewSearchQueryBuilder(eventstore.ColumnsEvent, AggregateType).
AggregateIDs(wm.iamID)
AggregateIDs(wm.AggregateID)
}