restructure and process additions and deleteions of relationships, roles and memberships
This commit is contained in:
@@ -13,13 +13,11 @@ const projectEvent = "metalproject"
|
||||
|
||||
func (s *service) buildProjectRelationships(project *models.ProjectDetails) (Relationships, error) {
|
||||
relations := Relationships{
|
||||
Relationships: []Relationship{
|
||||
// Relate project to organization.
|
||||
{
|
||||
Resource: project,
|
||||
Relation: RelateParent,
|
||||
RelatedResource: project.Organization,
|
||||
},
|
||||
Resource: project,
|
||||
// Relate project to organization.
|
||||
Parent: Relation{
|
||||
Resource: project.Organization,
|
||||
Relation: RelateParent,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -32,9 +30,8 @@ func (s *service) buildProjectRelationships(project *models.ProjectDetails) (Rel
|
||||
}
|
||||
|
||||
relations.Memberships = append(relations.Memberships, ResourceMemberships{
|
||||
Resource: project,
|
||||
Role: role,
|
||||
Member: member.User,
|
||||
Role: role,
|
||||
Member: member.User,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -67,10 +64,15 @@ func (s *service) TouchProject(ctx context.Context, id gidx.PrefixedID) error {
|
||||
return err
|
||||
}
|
||||
|
||||
s.processRelationships(ctx, projectEvent, relationships.Relationships)
|
||||
s.syncMemberships(ctx, relationships.Memberships)
|
||||
relationshipChanges := s.processRelationships(ctx, projectEvent, relationships)
|
||||
rolesChanged, assignmentsChanged := s.syncMemberships(ctx, relationships, false)
|
||||
|
||||
s.logger.Infow("project sync complete", "relationships", len(relationships.Relationships), "memberships", len(relationships.Memberships))
|
||||
s.logger.Infow("project sync complete",
|
||||
"resource.id", project.PrefixedID(),
|
||||
"relationships.changed", relationshipChanges,
|
||||
"membership.roles_changed", rolesChanged,
|
||||
"membership.assignments_changed", assignmentsChanged,
|
||||
)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user