mirror of
https://github.com/zitadel/zitadel.git
synced 2025-04-22 12:31:33 +00:00
fix: cascade remove external login (#871)
* fix: cascade remove external login * fix: tests
This commit is contained in:
parent
4fb6ad3f69
commit
bb9747923c
@ -472,8 +472,8 @@ func GetMockManipulateUserWithExternalIDP(ctrl *gomock.Controller) *UserEventsto
|
|||||||
dataUser, _ := json.Marshal(user)
|
dataUser, _ := json.Marshal(user)
|
||||||
dataIDP, _ := json.Marshal(externalIDP)
|
dataIDP, _ := json.Marshal(externalIDP)
|
||||||
events := []*es_models.Event{
|
events := []*es_models.Event{
|
||||||
{AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.UserAdded, Data: dataUser},
|
{AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.UserAdded, Data: dataUser, ResourceOwner: "ResourceOwner"},
|
||||||
{AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.HumanExternalIDPAdded, Data: dataIDP},
|
{AggregateID: "AggregateID", AggregateVersion: "v1", Sequence: 1, Type: model.HumanExternalIDPAdded, Data: dataIDP, ResourceOwner: "ResourceOwner"},
|
||||||
}
|
}
|
||||||
mockEs := mock.NewMockEventstore(ctrl)
|
mockEs := mock.NewMockEventstore(ctrl)
|
||||||
mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil)
|
mockEs.EXPECT().FilterEvents(gomock.Any(), gomock.Any()).Return(events, nil)
|
||||||
|
@ -836,7 +836,7 @@ func ExternalIDPRemovedAggregate(ctx context.Context, aggCreator *es_models.Aggr
|
|||||||
}
|
}
|
||||||
|
|
||||||
aggregates := make([]*es_models.Aggregate, 0)
|
aggregates := make([]*es_models.Aggregate, 0)
|
||||||
agg, err := UserAggregate(ctx, aggCreator, user)
|
agg, err := UserAggregateOverwriteContext(ctx, aggCreator, user, user.ResourceOwner, authz.GetCtxData(ctx).UserID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -845,7 +845,7 @@ func ExternalIDPRemovedAggregate(ctx context.Context, aggCreator *es_models.Aggr
|
|||||||
} else {
|
} else {
|
||||||
agg, err = agg.AppendEvent(model.HumanExternalIDPRemoved, externalIDP)
|
agg, err = agg.AppendEvent(model.HumanExternalIDPRemoved, externalIDP)
|
||||||
}
|
}
|
||||||
uniqueReleasedAggregate, err := releasedUniqueExternalIDPAggregate(ctx, aggCreator, externalIDP)
|
uniqueReleasedAggregate, err := releasedUniqueExternalIDPAggregate(ctx, aggCreator, externalIDP, user.ResourceOwner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -870,9 +870,10 @@ func reservedUniqueExternalIDPAggregate(ctx context.Context, aggCreator *es_mode
|
|||||||
return aggregate.SetPrecondition(UserExternalIDPUniqueQuery(uniqueExternlIDP), isEventValidation(aggregate, model.HumanExternalIDPReserved)), nil
|
return aggregate.SetPrecondition(UserExternalIDPUniqueQuery(uniqueExternlIDP), isEventValidation(aggregate, model.HumanExternalIDPReserved)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func releasedUniqueExternalIDPAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, externalIDP *model.ExternalIDP) (aggregate *es_models.Aggregate, err error) {
|
func releasedUniqueExternalIDPAggregate(ctx context.Context, aggCreator *es_models.AggregateCreator, externalIDP *model.ExternalIDP, resourceOwnerID string) (aggregate *es_models.Aggregate, err error) {
|
||||||
uniqueExternlIDP := externalIDP.IDPConfigID + externalIDP.UserID
|
uniqueExternlIDP := externalIDP.IDPConfigID + externalIDP.UserID
|
||||||
aggregate, err = aggCreator.NewAggregate(ctx, uniqueExternlIDP, model.UserExternalIDPAggregate, model.UserVersion, 0)
|
aggregate, err = aggCreator.NewAggregate(ctx, uniqueExternlIDP, model.UserExternalIDPAggregate, model.UserVersion, 0, es_models.OverwriteResourceOwner(resourceOwnerID), es_models.OverwriteEditorUser(authz.GetCtxData(ctx).UserID))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -2390,6 +2390,7 @@ func TestExternalIDPRemovedAggregates(t *testing.T) {
|
|||||||
ObjectRoot: models.ObjectRoot{
|
ObjectRoot: models.ObjectRoot{
|
||||||
AggregateID: "AggregateID",
|
AggregateID: "AggregateID",
|
||||||
Sequence: 5,
|
Sequence: 5,
|
||||||
|
ResourceOwner: "ResourceOwner",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
externalIDP: &model.ExternalIDP{
|
externalIDP: &model.ExternalIDP{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user