From 6eea2f3127dbd4f4b2dbe021b03ab0f0a181f884 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Date: Tue, 12 Aug 2025 15:43:22 +0200 Subject: [PATCH] fix: update group timestamp when membership change Signed-off-by: Miguel Martinez --- app/controlplane/pkg/data/group.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/app/controlplane/pkg/data/group.go b/app/controlplane/pkg/data/group.go index 3326fbcd0..147748ee5 100644 --- a/app/controlplane/pkg/data/group.go +++ b/app/controlplane/pkg/data/group.go @@ -458,6 +458,13 @@ func (g GroupRepo) AddMemberToGroup(ctx context.Context, orgID uuid.UUID, groupI return fmt.Errorf("failed to add user to group: %w", err) } + // Update the group's updated_at timestamp + if _, err := tx.Group.UpdateOneID(groupID). + SetUpdatedAt(time.Now()). + Save(ctx); err != nil { + return fmt.Errorf("failed to update group timestamp: %w", err) + } + // Update the user membership with the role of maintainer if maintainer { _, err = tx.Membership.Create(). @@ -513,6 +520,13 @@ func (g GroupRepo) RemoveMemberFromGroup(ctx context.Context, orgID uuid.UUID, g return fmt.Errorf("failed to remove user from group: %w", err) } + // Update the group's updated_at timestamp + if _, err := tx.Group.UpdateOneID(groupID). + SetUpdatedAt(now). + Save(ctx); err != nil { + return fmt.Errorf("failed to update group timestamp: %w", err) + } + if existingMembership.Maintainer { // Also remove the user membership if it exists if _, err := tx.Membership.Delete().Where( @@ -569,14 +583,22 @@ func (g GroupRepo) UpdateMemberMaintainerStatus(ctx context.Context, orgID uuid. } // Update the group membership with the new maintainer status + now := time.Now() _, err = tx.GroupMembership.UpdateOne(existingMembership). SetMaintainer(isMaintainer). - SetUpdatedAt(time.Now()). + SetUpdatedAt(now). Save(ctx) if err != nil { return fmt.Errorf("failed to update group membership maintainer status: %w", err) } + // Update the group's updated_at timestamp + if _, err := tx.Group.UpdateOneID(groupID). + SetUpdatedAt(now). + Save(ctx); err != nil { + return fmt.Errorf("failed to update group timestamp: %w", err) + } + // Update the membership table as well if isMaintainer { // If becoming a maintainer, create the membership record if it doesn't exist