From 8711269a7b11d765c6a56b77cc6abd22980402b3 Mon Sep 17 00:00:00 2001 From: Toni Cayuela Lopez Date: Sun, 10 May 2026 17:03:10 +0200 Subject: [PATCH] Allow to create restricted portfolios --- .../java/cat/udl/eps/softarch/demo/domain/Creator.java | 5 ++++- .../java/cat/udl/eps/softarch/demo/domain/Portfolio.java | 7 +++++++ .../java/cat/udl/eps/softarch/demo/domain/Profile.java | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/cat/udl/eps/softarch/demo/domain/Creator.java b/src/main/java/cat/udl/eps/softarch/demo/domain/Creator.java index 2747fbd1..11c84ead 100644 --- a/src/main/java/cat/udl/eps/softarch/demo/domain/Creator.java +++ b/src/main/java/cat/udl/eps/softarch/demo/domain/Creator.java @@ -15,9 +15,12 @@ import jakarta.persistence.OneToOne; import lombok.EqualsAndHashCode; +import lombok.ToString; + @Entity @DiscriminatorValue("CREATOR") -@EqualsAndHashCode(callSuper = true) +@EqualsAndHashCode(callSuper = true, exclude = "profile") +@ToString(exclude = "profile") public class Creator extends User { @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true) diff --git a/src/main/java/cat/udl/eps/softarch/demo/domain/Portfolio.java b/src/main/java/cat/udl/eps/softarch/demo/domain/Portfolio.java index 7d297f09..c18c5110 100644 --- a/src/main/java/cat/udl/eps/softarch/demo/domain/Portfolio.java +++ b/src/main/java/cat/udl/eps/softarch/demo/domain/Portfolio.java @@ -6,6 +6,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Set; +import java.util.HashSet; + import java.time.ZonedDateTime; @Entity @@ -36,6 +39,10 @@ public class Portfolio extends UriEntity { @JsonIdentityReference(alwaysAsId = true) private User owner; + @ManyToMany(fetch = FetchType.EAGER) + @JsonIdentityReference(alwaysAsId = true) + private Set allowedUsers = new HashSet<>(); + @PrePersist protected void onCreate() { ZonedDateTime now = ZonedDateTime.now(); diff --git a/src/main/java/cat/udl/eps/softarch/demo/domain/Profile.java b/src/main/java/cat/udl/eps/softarch/demo/domain/Profile.java index 0f3e4dcf..def69936 100644 --- a/src/main/java/cat/udl/eps/softarch/demo/domain/Profile.java +++ b/src/main/java/cat/udl/eps/softarch/demo/domain/Profile.java @@ -3,8 +3,13 @@ import jakarta.persistence.*; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + @Entity @Data +@EqualsAndHashCode(exclude = "creator") +@ToString(exclude = "creator") public class Profile { @Id