relation deletion must be done through the api as events delete all relationships

This commit is contained in:
Mike Mason
2023-07-17 16:32:21 +00:00
parent 70f17de14b
commit cb0651b7bf
3 changed files with 54 additions and 21 deletions

View File

@@ -102,16 +102,6 @@ func (s *service) processRelationships(ctx context.Context, eventType string, re
})
}
for _, relatedResourceID := range deleteParentRelationships {
processEvents = append(processEvents, events.ChangeMessage{
SubjectID: relationships.Resource.PrefixedID(),
EventType: string(events.DeleteChangeType),
AdditionalSubjectIDs: []gidx.PrefixedID{
relatedResourceID,
},
})
}
for _, relation := range createSubjectRelationships {
processEvents = append(processEvents, events.ChangeMessage{
SubjectID: relation.Resource.PrefixedID(),
@@ -122,14 +112,23 @@ func (s *service) processRelationships(ctx context.Context, eventType string, re
})
}
for _, relatedResourceID := range deleteParentRelationships {
err = s.perms.DeleteResourceRelationship(ctx, relationships.Resource.PrefixedID(), string(RelateParent), relatedResourceID)
if err != nil {
rlogger.Errorw("error deleting parent relationship",
"parent.resource.id", relatedResourceID.String(),
)
}
}
for _, relation := range deleteSubjectRelationships {
processEvents = append(processEvents, events.ChangeMessage{
SubjectID: relation.Resource.PrefixedID(),
EventType: string(events.DeleteChangeType),
AdditionalSubjectIDs: []gidx.PrefixedID{
relationships.Resource.PrefixedID(),
},
})
err = s.perms.DeleteResourceRelationship(ctx, relation.Resource.PrefixedID(), string(relation.Relation), relationships.Resource.PrefixedID())
if err != nil {
rlogger.Errorw("error deleting relationship",
"relation", relation.Relation,
"subject.id", relation.Resource.PrefixedID().String(),
)
}
}
for _, event := range processEvents {