From e8da0e3f4ffad1ec453c329f6a6f9a42222a12be Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Mon, 30 Aug 2021 07:24:04 +0200 Subject: [PATCH] fix: Factors login policy (#2276) * fix: check policy removed on factors * fix: check policy removed on factors --- .../command/org_policy_login_factors_model.go | 18 ++++++++++++++++-- internal/command/policy_login_factors_model.go | 4 ++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/internal/command/org_policy_login_factors_model.go b/internal/command/org_policy_login_factors_model.go index b1db43ae2..65bcad6fd 100644 --- a/internal/command/org_policy_login_factors_model.go +++ b/internal/command/org_policy_login_factors_model.go @@ -34,6 +34,8 @@ func (wm *OrgSecondFactorWriteModel) AppendEvents(events ...eventstore.EventRead if wm.MFAType == e.MFAType { wm.WriteModel.AppendEvents(&e.SecondFactorRemovedEvent) } + case *org.LoginPolicyRemovedEvent: + wm.WriteModel.AppendEvents(&e.LoginPolicyRemovedEvent) } } } @@ -50,7 +52,8 @@ func (wm *OrgSecondFactorWriteModel) Query() *eventstore.SearchQueryBuilder { AggregateIDs(wm.WriteModel.AggregateID). EventTypes( org.LoginPolicySecondFactorAddedEventType, - org.LoginPolicySecondFactorRemovedEventType). + org.LoginPolicySecondFactorRemovedEventType, + org.LoginPolicyRemovedEventType). Builder() } @@ -81,6 +84,8 @@ func (wm *OrgMultiFactorWriteModel) AppendEvents(events ...eventstore.EventReade if wm.MFAType == e.MFAType { wm.WriteModel.AppendEvents(&e.MultiFactorRemovedEvent) } + case *org.LoginPolicyRemovedEvent: + wm.WriteModel.AppendEvents(&e.LoginPolicyRemovedEvent) } } } @@ -97,7 +102,8 @@ func (wm *OrgMultiFactorWriteModel) Query() *eventstore.SearchQueryBuilder { AggregateIDs(wm.WriteModel.AggregateID). EventTypes( org.LoginPolicyMultiFactorAddedEventType, - org.LoginPolicyMultiFactorRemovedEventType). + org.LoginPolicyMultiFactorRemovedEventType, + org.LoginPolicyRemovedEventType). Builder() } @@ -150,6 +156,13 @@ func (wm *OrgAuthFactorsAllowedWriteModel) Reduce() error { case *org.LoginPolicyMultiFactorRemovedEvent: wm.ensureMultiFactor(e.MFAType) wm.MultiFactors[e.MFAType].Org = domain.FactorStateRemoved + case *org.LoginPolicyRemovedEvent: + for factorType, _ := range wm.SecondFactors { + wm.SecondFactors[factorType].Org = domain.FactorStateRemoved + } + for factorType, _ := range wm.MultiFactors { + wm.MultiFactors[factorType].Org = domain.FactorStateRemoved + } } } return wm.WriteModel.Reduce() @@ -188,6 +201,7 @@ func (wm *OrgAuthFactorsAllowedWriteModel) Query() *eventstore.SearchQueryBuilde org.LoginPolicySecondFactorRemovedEventType, org.LoginPolicyMultiFactorAddedEventType, org.LoginPolicyMultiFactorRemovedEventType, + org.LoginPolicyRemovedEventType, ). Builder() } diff --git a/internal/command/policy_login_factors_model.go b/internal/command/policy_login_factors_model.go index 58b31d2c3..a6d2b8525 100644 --- a/internal/command/policy_login_factors_model.go +++ b/internal/command/policy_login_factors_model.go @@ -21,6 +21,8 @@ func (wm *SecondFactorWriteModel) Reduce() error { case *policy.SecondFactorRemovedEvent: wm.MFAType = e.MFAType wm.State = domain.FactorStateRemoved + case *policy.LoginPolicyRemovedEvent: + wm.State = domain.FactorStateRemoved } } return wm.WriteModel.Reduce() @@ -41,6 +43,8 @@ func (wm *MultiFactorWriteModel) Reduce() error { case *policy.MultiFactorRemovedEvent: wm.MFAType = e.MFAType wm.State = domain.FactorStateRemoved + case *policy.LoginPolicyRemovedEvent: + wm.State = domain.FactorStateRemoved } } return wm.WriteModel.Reduce()