From 79fb8aa37a8e5de097f8e8ab026c6f8aa80d7308 Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Fri, 10 Sep 2021 09:29:21 +0200 Subject: [PATCH] fix: use correct command side (#2334) Co-authored-by: Livio Amstutz --- .../api/grpc/management/policy_lockout.go | 2 +- internal/command/org_policy_lockout.go | 20 +++++++++++++------ internal/command/org_policy_lockout_test.go | 2 +- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/internal/api/grpc/management/policy_lockout.go b/internal/api/grpc/management/policy_lockout.go index cc1294b01..f93d06bfa 100644 --- a/internal/api/grpc/management/policy_lockout.go +++ b/internal/api/grpc/management/policy_lockout.go @@ -53,7 +53,7 @@ func (s *Server) UpdateCustomLockoutPolicy(ctx context.Context, req *mgmt_pb.Upd } func (s *Server) ResetLockoutPolicyToDefault(ctx context.Context, req *mgmt_pb.ResetLockoutPolicyToDefaultRequest) (*mgmt_pb.ResetLockoutPolicyToDefaultResponse, error) { - objectDetails, err := s.command.RemovePasswordComplexityPolicy(ctx, authz.GetCtxData(ctx).OrgID) + objectDetails, err := s.command.RemoveLockoutPolicy(ctx, authz.GetCtxData(ctx).OrgID) if err != nil { return nil, err } diff --git a/internal/command/org_policy_lockout.go b/internal/command/org_policy_lockout.go index 073f53f82..8daccf752 100644 --- a/internal/command/org_policy_lockout.go +++ b/internal/command/org_policy_lockout.go @@ -60,21 +60,29 @@ func (c *Commands) ChangeLockoutPolicy(ctx context.Context, resourceOwner string return writeModelToLockoutPolicy(&existingPolicy.LockoutPolicyWriteModel), nil } -func (c *Commands) RemoveLockoutPolicy(ctx context.Context, orgID string) error { +func (c *Commands) RemoveLockoutPolicy(ctx context.Context, orgID string) (*domain.ObjectDetails, error) { if orgID == "" { - return caos_errs.ThrowInvalidArgument(nil, "Org-4J9fs", "Errors.ResourceOwnerMissing") + return nil, caos_errs.ThrowInvalidArgument(nil, "Org-4J9fs", "Errors.ResourceOwnerMissing") } existingPolicy, err := c.orgLockoutPolicyWriteModelByID(ctx, orgID) if err != nil { - return err + return nil, err } if existingPolicy.State == domain.PolicyStateUnspecified || existingPolicy.State == domain.PolicyStateRemoved { - return caos_errs.ThrowNotFound(nil, "ORG-D4zuz", "Errors.Org.LockoutPolicy.NotFound") + return nil, caos_errs.ThrowNotFound(nil, "ORG-D4zuz", "Errors.Org.LockoutPolicy.NotFound") } orgAgg := OrgAggregateFromWriteModel(&existingPolicy.WriteModel) - _, err = c.eventstore.PushEvents(ctx, org.NewLockoutPolicyRemovedEvent(ctx, orgAgg)) - return err + pushedEvents, err := c.eventstore.PushEvents(ctx, org.NewLockoutPolicyRemovedEvent(ctx, orgAgg)) + if err != nil { + return nil, err + } + err = AppendAndReduce(existingPolicy, pushedEvents...) + if err != nil { + return nil, err + } + return writeModelToObjectDetails(&existingPolicy.LockoutPolicyWriteModel.WriteModel), nil + } func (c *Commands) removeLockoutPolicyIfExists(ctx context.Context, orgID string) (*org.LockoutPolicyRemovedEvent, error) { diff --git a/internal/command/org_policy_lockout_test.go b/internal/command/org_policy_lockout_test.go index 0166f2e61..cc1ac8861 100644 --- a/internal/command/org_policy_lockout_test.go +++ b/internal/command/org_policy_lockout_test.go @@ -373,7 +373,7 @@ func TestCommandSide_RemovePasswordLockoutPolicy(t *testing.T) { r := &Commands{ eventstore: tt.fields.eventstore, } - err := r.RemoveLockoutPolicy(tt.args.ctx, tt.args.orgID) + _, err := r.RemoveLockoutPolicy(tt.args.ctx, tt.args.orgID) if tt.res.err == nil { assert.NoError(t, err) }