diff --git a/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.DecomposeDueToIdentityDeletionTests.cs b/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.DecomposeDueToIdentityDeletionTests.cs index 5edb8fa3af..02fefecaeb 100644 --- a/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.DecomposeDueToIdentityDeletionTests.cs +++ b/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.DecomposeDueToIdentityDeletionTests.cs @@ -30,19 +30,6 @@ public void Decomposition_can_be_performed_from_multiple_statuses(RelationshipSt relationship.ToHasDecomposed.Should().BeFalse(); } - [Fact] - public void Decomposition_can_not_be_called_by_the_same_identity_twice() - { - // Arrange - var relationship = CreateRelationshipDecomposedByFrom(IDENTITY_1, IDENTITY_2); - - // Act - var acting = () => relationship.DecomposeDueToIdentityDeletion(IDENTITY_1, DID_DOMAIN_NAME); - - // Assert - acting.Should().Throw().WithError("error.platform.validation.relationship.relationshipAlreadyDecomposed"); - } - [Fact] public void Decomposition_can_not_be_performed_by_other_identities() { diff --git a/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.cs b/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.cs index f4c8c926f7..8f60d65976 100644 --- a/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.cs +++ b/Modules/Relationships/src/Relationships.Domain/Aggregates/Relationships/Relationship.cs @@ -306,7 +306,8 @@ public void Decompose(IdentityAddress activeIdentity, DeviceId activeDevice) public void DecomposeDueToIdentityDeletion(IdentityAddress identityToBeDeleted, string didDomainName) { EnsureHasParticipant(identityToBeDeleted); - EnsureRelationshipNotDecomposedBy(identityToBeDeleted); + + if (From == identityToBeDeleted && FromHasDecomposed || To == identityToBeDeleted && ToHasDecomposed) return; if (Status is RelationshipStatus.DeletionProposed) DecomposeAsSecondParticipant(identityToBeDeleted, null, RelationshipAuditLogEntryReason.DecompositionDueToIdentityDeletion);