diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2020-01-24 11:42:49 +0100 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2020-01-24 11:42:49 +0100 |
commit | d9b9588f03ec77d05e5651a88d672184c8b351a5 (patch) | |
tree | 1527212db6672b5605bae001e3c6ef25197a5110 /src/main/java/eu | |
parent | ec7f805fc62265055b36a9802c01826bdf940bc8 (diff) |
Benki: Sort into a sane folder structure, fix mapping bugs.
Change-Id: I55f5c0349dc580a24506648284ce6483dd952d8a
Diffstat (limited to 'src/main/java/eu')
45 files changed, 360 insertions, 432 deletions
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/EffectiveRoleSubrole.java b/src/main/java/eu/mulk/mulkcms2/benki/EffectiveRoleSubrole.java deleted file mode 100644 index adc2a50..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/EffectiveRoleSubrole.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -@Entity -@Table(name = "effective_role_subroles", schema = "public", catalog = "benki") -public class EffectiveRoleSubrole extends PanacheEntityBase { - - @Column(name = "superrole", nullable = true) - public Integer superroleId; - - @Column(name = "subrole", nullable = true) - public Integer subroleId; -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/EffectiveUserRole.java b/src/main/java/eu/mulk/mulkcms2/benki/EffectiveUserRole.java deleted file mode 100644 index fc2e453..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/EffectiveUserRole.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -@Entity -@Table(name = "effective_user_roles", schema = "public", catalog = "benki") -public class EffectiveUserRole extends PanacheEntityBase { - - @Column(name = "user", nullable = true) - public Integer userId; - - @Column(name = "role", nullable = true) - public Integer roleId; -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/User.java b/src/main/java/eu/mulk/mulkcms2/benki/User.java deleted file mode 100644 index cabd91f..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/User.java +++ /dev/null @@ -1,277 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import java.util.Collection; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -@Entity -@Table(name = "users", schema = "public", catalog = "benki") -public class User extends PanacheEntityBase { - - public int id; - public String firstName; - public String middleNames; - public String lastName; - public String email; - public String website; - public String status; - public Collection<Bookmark> bookmarks; - public Collection<LazychatMessage> lazychatMessages; - public Collection<Openids> openids; - public Collection<PageKey> pageKeys; - public Collection<Post> posts; - public Collection<UserDefaultTarget> defaultTargets; - public Collection<UserEmailAddress> emailAddresses; - public Collection<UserJid> jids; - public Collection<UserNickname> nicknames; - public Collection<UserRole> roles; - public Collection<UserRsaKey> rsaKeys; - public Role ownedRole; - public Collection<WebId> webids; - public Collection<WikiPageRevision> wikiPageRevisions; - - @Id - @Column(name = "id", nullable = false) - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - @Column(name = "first_name", nullable = true, length = -1) - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - @Column(name = "middle_names", nullable = true, length = -1) - public String getMiddleNames() { - return middleNames; - } - - public void setMiddleNames(String middleNames) { - this.middleNames = middleNames; - } - - @Column(name = "last_name", nullable = true, length = -1) - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - @Column(name = "email", nullable = true, length = -1) - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - @Column(name = "website", nullable = true, length = -1) - public String getWebsite() { - return website; - } - - public void setWebsite(String website) { - this.website = website; - } - - @Column(name = "status", nullable = true, length = -1) - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - User user = (User) o; - - if (id != user.id) { - return false; - } - if (firstName != null ? !firstName.equals(user.firstName) : user.firstName != null) { - return false; - } - if (middleNames != null ? !middleNames.equals(user.middleNames) : user.middleNames != null) { - return false; - } - if (lastName != null ? !lastName.equals(user.lastName) : user.lastName != null) { - return false; - } - if (email != null ? !email.equals(user.email) : user.email != null) { - return false; - } - if (website != null ? !website.equals(user.website) : user.website != null) { - return false; - } - if (status != null ? !status.equals(user.status) : user.status != null) { - return false; - } - - return true; - } - - @Override - public int hashCode() { - int result = id; - result = 31 * result + (firstName != null ? firstName.hashCode() : 0); - result = 31 * result + (middleNames != null ? middleNames.hashCode() : 0); - result = 31 * result + (lastName != null ? lastName.hashCode() : 0); - result = 31 * result + (email != null ? email.hashCode() : 0); - result = 31 * result + (website != null ? website.hashCode() : 0); - result = 31 * result + (status != null ? status.hashCode() : 0); - return result; - } - - @OneToMany(mappedBy = "owner") - public Collection<Bookmark> getBookmarks() { - return bookmarks; - } - - public void setBookmarks(Collection<Bookmark> bookmarks) { - this.bookmarks = bookmarks; - } - - @OneToMany(mappedBy = "owner") - public Collection<LazychatMessage> getLazychatMessages() { - return lazychatMessages; - } - - public void setLazychatMessages(Collection<LazychatMessage> lazychatMessages) { - this.lazychatMessages = lazychatMessages; - } - - @OneToMany(mappedBy = "user") - public Collection<Openids> getOpenids() { - return openids; - } - - public void setOpenids(Collection<Openids> openids) { - this.openids = openids; - } - - @OneToMany(mappedBy = "user") - public Collection<PageKey> getPageKeys() { - return pageKeys; - } - - public void setPageKeys(Collection<PageKey> pageKeys) { - this.pageKeys = pageKeys; - } - - @OneToMany(mappedBy = "owner") - public Collection<Post> getPosts() { - return posts; - } - - public void setPosts(Collection<Post> posts) { - this.posts = posts; - } - - @OneToMany(mappedBy = "user") - public Collection<UserDefaultTarget> getDefaultTargets() { - return defaultTargets; - } - - public void setDefaultTargets(Collection<UserDefaultTarget> defaultTargets) { - this.defaultTargets = defaultTargets; - } - - @OneToMany(mappedBy = "user") - public Collection<UserEmailAddress> getEmailAddresses() { - return emailAddresses; - } - - public void setEmailAddresses(Collection<UserEmailAddress> emailAddresses) { - this.emailAddresses = emailAddresses; - } - - @OneToMany(mappedBy = "user") - public Collection<UserJid> getJids() { - return jids; - } - - public void setJids(Collection<UserJid> jids) { - this.jids = jids; - } - - @OneToMany(mappedBy = "user") - public Collection<UserNickname> getNicknames() { - return nicknames; - } - - public void setNicknames(Collection<UserNickname> nicknames) { - this.nicknames = nicknames; - } - - @OneToMany(mappedBy = "user") - public Collection<UserRole> getRoles() { - return roles; - } - - public void setRoles(Collection<UserRole> roles) { - this.roles = roles; - } - - @OneToMany(mappedBy = "user") - public Collection<UserRsaKey> getRsaKeys() { - return rsaKeys; - } - - public void setRsaKeys(Collection<UserRsaKey> rsaKeys) { - this.rsaKeys = rsaKeys; - } - - @ManyToOne - @JoinColumn(name = "role", referencedColumnName = "id", nullable = false) - public Role getOwnedRole() { - return ownedRole; - } - - public void setOwnedRole(Role ownedRole) { - this.ownedRole = ownedRole; - } - - @OneToMany(mappedBy = "user") - public Collection<WebId> getWebids() { - return webids; - } - - public void setWebids(Collection<WebId> webids) { - this.webids = webids; - } - - @OneToMany(mappedBy = "author") - public Collection<WikiPageRevision> getWikiPageRevisions() { - return wikiPageRevisions; - } - - public void setWikiPageRevisions(Collection<WikiPageRevision> wikiPageRevisions) { - this.wikiPageRevisions = wikiPageRevisions; - } -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleBookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleBookmark.java deleted file mode 100644 index ae5d52e..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleBookmark.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -@Entity -@Table(name = "user_visible_bookmarks", schema = "public", catalog = "benki") -public class UserVisibleBookmark extends PanacheEntityBase { - - @Column(name = "user", nullable = true) - public Integer userId; - - @Column(name = "message", nullable = true) - public Integer messageId; -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleLazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleLazychatMessage.java deleted file mode 100644 index d57dca5..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserVisibleLazychatMessage.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -@Entity -@Table(name = "user_visible_lazychat_messages", schema = "public", catalog = "benki") -public class UserVisibleLazychatMessage extends PanacheEntityBase { - - @Column(name = "user", nullable = true) - public Integer userId; - - @Column(name = "message", nullable = true) - public Integer messageId; -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserVisiblePost.java b/src/main/java/eu/mulk/mulkcms2/benki/UserVisiblePost.java deleted file mode 100644 index 62833e6..0000000 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserVisiblePost.java +++ /dev/null @@ -1,17 +0,0 @@ -package eu.mulk.mulkcms2.benki; - -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -@Entity -@Table(name = "user_visible_posts", schema = "public", catalog = "benki") -public class UserVisiblePost extends PanacheEntityBase { - - @Column(name = "user", nullable = true) - public Integer userId; - - @Column(name = "message", nullable = true) - public Integer messageId; -} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveRoleSubrole.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveRoleSubrole.java new file mode 100644 index 0000000..4166752 --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveRoleSubrole.java @@ -0,0 +1,42 @@ +package eu.mulk.mulkcms2.benki.accesscontrol; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.io.Serializable; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import org.hibernate.annotations.Immutable; + +@Entity +@Immutable +@Table(name = "effective_role_subroles", schema = "public", catalog = "benki") +public class EffectiveRoleSubrole extends PanacheEntityBase implements Serializable { + + @Id + @Column(name = "superrole", nullable = true) + public Integer superroleId; + + @Id + @Column(name = "subrole", nullable = true) + public Integer subroleId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof EffectiveRoleSubrole)) { + return false; + } + EffectiveRoleSubrole that = (EffectiveRoleSubrole) o; + return Objects.equals(superroleId, that.superroleId) + && Objects.equals(subroleId, that.subroleId); + } + + @Override + public int hashCode() { + return Objects.hash(superroleId, subroleId); + } +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveUserRole.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveUserRole.java new file mode 100644 index 0000000..6b5c3ab --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/EffectiveUserRole.java @@ -0,0 +1,41 @@ +package eu.mulk.mulkcms2.benki.accesscontrol; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.io.Serializable; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import org.hibernate.annotations.Immutable; + +@Entity +@Immutable +@Table(name = "effective_user_roles", schema = "public", catalog = "benki") +public class EffectiveUserRole extends PanacheEntityBase implements Serializable { + + @Id + @Column(name = "user", nullable = true) + public Integer userId; + + @Id + @Column(name = "role", nullable = true) + public Integer roleId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof EffectiveUserRole)) { + return false; + } + EffectiveUserRole that = (EffectiveUserRole) o; + return Objects.equals(userId, that.userId) && Objects.equals(roleId, that.roleId); + } + + @Override + public int hashCode() { + return Objects.hash(userId, roleId); + } +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/PageKey.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/PageKey.java index 26c1d57..679c25d 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/PageKey.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/PageKey.java @@ -1,5 +1,6 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; +import eu.mulk.mulkcms2.benki.users.User; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import java.math.BigInteger; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/PageKeyPK.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/PageKeyPK.java index dea94ed..e80cb5e 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/PageKeyPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/PageKeyPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; import java.io.Serializable; import java.math.BigInteger; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/Role.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/Role.java index 48bd042..090fb92 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/Role.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/Role.java @@ -1,5 +1,9 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; +import eu.mulk.mulkcms2.benki.generic.PostTarget; +import eu.mulk.mulkcms2.benki.users.User; +import eu.mulk.mulkcms2.benki.users.UserDefaultTarget; +import eu.mulk.mulkcms2.benki.users.UserRole; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import java.util.Collection; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RoleSubrole.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleSubrole.java index 0be5493..5e7b237 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RoleSubrole.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleSubrole.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RoleSubrolePK.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleSubrolePK.java index cf36115..f74d98b 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RoleSubrolePK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleSubrolePK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RoleTag.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleTag.java index 9bc72c4..5dbda68 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RoleTag.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleTag.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RoleTagPK.java b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleTagPK.java index e406e10..5b32f81 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RoleTagPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/accesscontrol/RoleTagPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.accesscontrol; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/Bookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/Bookmark.java index 220ebfa..121e340 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/Bookmark.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/Bookmark.java @@ -1,25 +1,15 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.bookmarx; -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import eu.mulk.mulkcms2.benki.generic.Post; import java.util.Collection; import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "bookmarks", schema = "public", catalog = "benki") -public class Bookmark extends PanacheEntityBase { - - @Id - @Column(name = "id", nullable = false) - public int id; - - @Column(name = "date", nullable = true) - public Object date; +public class Bookmark extends Post { @Column(name = "uri", nullable = false, length = -1) public String uri; @@ -32,8 +22,4 @@ public class Bookmark extends PanacheEntityBase { @OneToMany(mappedBy = "bookmark") public Collection<BookmarkTag> tags; - - @ManyToOne - @JoinColumn(name = "owner", referencedColumnName = "id") - public User owner; } diff --git a/src/main/java/eu/mulk/mulkcms2/benki/BookmarkTag.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/BookmarkTag.java index 6efa87e..cca5478 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/BookmarkTag.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/BookmarkTag.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.bookmarx; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/BookmarkTagPK.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/BookmarkTagPK.java index 89e7fb9..876648d 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/BookmarkTagPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/BookmarkTagPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.bookmarx; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/UserVisibleBookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/UserVisibleBookmark.java new file mode 100644 index 0000000..589e62a --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/UserVisibleBookmark.java @@ -0,0 +1,41 @@ +package eu.mulk.mulkcms2.benki.bookmarx; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.io.Serializable; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import org.hibernate.annotations.Immutable; + +@Entity +@Immutable +@Table(name = "user_visible_bookmarks", schema = "public", catalog = "benki") +public class UserVisibleBookmark extends PanacheEntityBase implements Serializable { + + @Id + @Column(name = "user", nullable = true) + public Integer userId; + + @Id + @Column(name = "message", nullable = true) + public Integer messageId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof UserVisibleBookmark)) { + return false; + } + UserVisibleBookmark that = (UserVisibleBookmark) o; + return Objects.equals(userId, that.userId) && Objects.equals(messageId, that.messageId); + } + + @Override + public int hashCode() { + return Objects.hash(userId, messageId); + } +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/Post.java b/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java index 2fc6b05..050cdcb 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/Post.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/generic/Post.java @@ -1,23 +1,28 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.generic; +import eu.mulk.mulkcms2.benki.users.User; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.time.OffsetDateTime; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; @Entity @Table(name = "posts", schema = "public", catalog = "benki") -public class Post extends PanacheEntityBase { +@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) +public abstract class Post extends PanacheEntityBase { @Id @Column(name = "id", nullable = false) public int id; @Column(name = "date", nullable = true) - public Object date; + public OffsetDateTime date; @ManyToOne @JoinColumn(name = "owner", referencedColumnName = "id") diff --git a/src/main/java/eu/mulk/mulkcms2/benki/PostTarget.java b/src/main/java/eu/mulk/mulkcms2/benki/generic/PostTarget.java index d785d78..3a3f6b2 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/PostTarget.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/generic/PostTarget.java @@ -1,5 +1,6 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.generic; +import eu.mulk.mulkcms2.benki.accesscontrol.Role; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/PostTargetPK.java b/src/main/java/eu/mulk/mulkcms2/benki/generic/PostTargetPK.java index 0189837..13c660d 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/PostTargetPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/generic/PostTargetPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.generic; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/generic/UserVisiblePost.java b/src/main/java/eu/mulk/mulkcms2/benki/generic/UserVisiblePost.java new file mode 100644 index 0000000..2b09120 --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/generic/UserVisiblePost.java @@ -0,0 +1,41 @@ +package eu.mulk.mulkcms2.benki.generic; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.io.Serializable; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import org.hibernate.annotations.Immutable; + +@Entity +@Immutable +@Table(name = "user_visible_posts", schema = "public", catalog = "benki") +public class UserVisiblePost extends PanacheEntityBase implements Serializable { + + @Id + @Column(name = "user", nullable = true) + public Integer userId; + + @Id + @Column(name = "message", nullable = true) + public Integer messageId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof UserVisiblePost)) { + return false; + } + UserVisiblePost that = (UserVisiblePost) o; + return Objects.equals(userId, that.userId) && Objects.equals(messageId, that.messageId); + } + + @Override + public int hashCode() { + return Objects.hash(userId, messageId); + } +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/LazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatMessage.java index 43363d2..626f263 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/LazychatMessage.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatMessage.java @@ -1,25 +1,15 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.lafargue; -import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import eu.mulk.mulkcms2.benki.generic.Post; import java.util.Collection; import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "lazychat_messages", schema = "public", catalog = "benki") -public class LazychatMessage extends PanacheEntityBase { - - @Id - @Column(name = "id", nullable = false) - public int id; - - @Column(name = "date", nullable = true) - public Object date; +public class LazychatMessage extends Post { @Column(name = "content", nullable = true, length = -1) public String content; @@ -27,10 +17,6 @@ public class LazychatMessage extends PanacheEntityBase { @Column(name = "format", nullable = false, length = -1) public String format; - @ManyToOne - @JoinColumn(name = "owner", referencedColumnName = "id") - public User owner; - @OneToMany(mappedBy = "referrer") public Collection<LazychatReference> references; } diff --git a/src/main/java/eu/mulk/mulkcms2/benki/LazychatReference.java b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatReference.java index 19803ba..d1e8910 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/LazychatReference.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatReference.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.lafargue; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/LazychatReferencePK.java b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatReferencePK.java index c7eefc0..6e2d965 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/LazychatReferencePK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatReferencePK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.lafargue; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lafargue/UserVisibleLazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/UserVisibleLazychatMessage.java new file mode 100644 index 0000000..0570aae --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/UserVisibleLazychatMessage.java @@ -0,0 +1,41 @@ +package eu.mulk.mulkcms2.benki.lafargue; + +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.io.Serializable; +import java.util.Objects; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import org.hibernate.annotations.Immutable; + +@Entity +@Immutable +@Table(name = "user_visible_lazychat_messages", schema = "public", catalog = "benki") +public class UserVisibleLazychatMessage extends PanacheEntityBase implements Serializable { + + @Id + @Column(name = "user", nullable = true) + public Integer userId; + + @Id + @Column(name = "message", nullable = true) + public Integer messageId; + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof UserVisibleLazychatMessage)) { + return false; + } + UserVisibleLazychatMessage that = (UserVisibleLazychatMessage) o; + return Objects.equals(userId, that.userId) && Objects.equals(messageId, that.messageId); + } + + @Override + public int hashCode() { + return Objects.hash(userId, messageId); + } +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/Openids.java b/src/main/java/eu/mulk/mulkcms2/benki/users/Openids.java index d0551e4..925584b 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/Openids.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/Openids.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RsaKey.java b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java index d3da90e..6e3db81 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RsaKey.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import java.math.BigInteger; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/RsaKeyPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKeyPK.java index 41a332d..5b33ec8 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/RsaKeyPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKeyPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import java.io.Serializable; import java.math.BigInteger; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/User.java b/src/main/java/eu/mulk/mulkcms2/benki/users/User.java new file mode 100644 index 0000000..fb1ed3b --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/User.java @@ -0,0 +1,87 @@ +package eu.mulk.mulkcms2.benki.users; + +import eu.mulk.mulkcms2.benki.accesscontrol.PageKey; +import eu.mulk.mulkcms2.benki.accesscontrol.Role; +import eu.mulk.mulkcms2.benki.bookmarx.Bookmark; +import eu.mulk.mulkcms2.benki.generic.Post; +import eu.mulk.mulkcms2.benki.lafargue.LazychatMessage; +import eu.mulk.mulkcms2.benki.wiki.WikiPageRevision; +import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.util.Collection; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; + +@Entity(name = "BenkiUser") +@Table(name = "users", schema = "public", catalog = "benki") +public class User extends PanacheEntityBase { + + @Id + @Column(name = "id", nullable = false) + public int id; + + @Column(name = "first_name", nullable = true, length = -1) + public String firstName; + + @Column(name = "middle_names", nullable = true, length = -1) + public String middleNames; + + @Column(name = "last_name", nullable = true, length = -1) + public String lastName; + + @Column(name = "email", nullable = true, length = -1) + public String email; + + @Column(name = "website", nullable = true, length = -1) + public String website; + + @Column(name = "status", nullable = true, length = -1) + public String status; + + @OneToMany(mappedBy = "owner") + public Collection<Bookmark> bookmarks; + + @OneToMany(mappedBy = "owner") + public Collection<LazychatMessage> lazychatMessages; + + @OneToMany(mappedBy = "user") + public Collection<Openids> openids; + + @OneToMany(mappedBy = "user") + public Collection<PageKey> pageKeys; + + @OneToMany(mappedBy = "owner") + public Collection<Post> posts; + + @OneToMany(mappedBy = "user") + public Collection<UserDefaultTarget> defaultTargets; + + @OneToMany(mappedBy = "user") + public Collection<UserEmailAddress> emailAddresses; + + @OneToMany(mappedBy = "user") + public Collection<UserJid> jids; + + @OneToMany(mappedBy = "user") + public Collection<UserNickname> nicknames; + + @OneToMany(mappedBy = "user") + public Collection<UserRole> roles; + + @OneToMany(mappedBy = "user") + public Collection<UserRsaKey> rsaKeys; + + @ManyToOne + @JoinColumn(name = "role", referencedColumnName = "id", nullable = false) + public Role ownedRole; + + @OneToMany(mappedBy = "user") + public Collection<WebId> webids; + + @OneToMany(mappedBy = "author") + public Collection<WikiPageRevision> wikiPageRevisions; +} diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTarget.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTarget.java index 4989023..ffa5ef7 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTarget.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTarget.java @@ -1,5 +1,6 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; +import eu.mulk.mulkcms2.benki.accesscontrol.Role; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTargetPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTargetPK.java index e7e080f..4a41e7b 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTargetPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTargetPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserEmailAddress.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserEmailAddress.java index 3341687..9706407 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserEmailAddress.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserEmailAddress.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserJid.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJid.java index c32d547..1c17ca8 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserJid.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJid.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserJidPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJidPK.java index f033723..19eeaeb 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserJidPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJidPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserNickname.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserNickname.java index 7bfed4e..b664cb9 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserNickname.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserNickname.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserRole.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRole.java index f735d6c..d4c10bd 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserRole.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRole.java @@ -1,5 +1,6 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; +import eu.mulk.mulkcms2.benki.accesscontrol.Role; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserRolePK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRolePK.java index 6181b8b..5649ff4 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserRolePK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRolePK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import java.io.Serializable; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserRsaKey.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKey.java index f35afdd..33552e5 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserRsaKey.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKey.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import java.math.BigInteger; @@ -34,8 +34,18 @@ public class UserRsaKey extends PanacheEntityBase { @ManyToOne @JoinColumns({ - @JoinColumn(name = "modulus", referencedColumnName = "modulus", nullable = false), - @JoinColumn(name = "exponent", referencedColumnName = "exponent", nullable = false) + @JoinColumn( + name = "modulus", + referencedColumnName = "modulus", + nullable = false, + insertable = false, + updatable = false), + @JoinColumn( + name = "exponent", + referencedColumnName = "exponent", + nullable = false, + insertable = false, + updatable = false) }) public RsaKey rsaKey; } diff --git a/src/main/java/eu/mulk/mulkcms2/benki/UserRsaKeyPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKeyPK.java index 4c146ae..adcaeb6 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/UserRsaKeyPK.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKeyPK.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import java.io.Serializable; import java.math.BigInteger; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/WebId.java b/src/main/java/eu/mulk/mulkcms2/benki/users/WebId.java index 476d91f..0a30ff1 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/WebId.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/users/WebId.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.users; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import javax.persistence.Column; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/WikiPage.java b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiPage.java index 169c70a..e2e5b13 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/WikiPage.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiPage.java @@ -1,4 +1,4 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.wiki; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; import java.util.Collection; diff --git a/src/main/java/eu/mulk/mulkcms2/benki/WikiPageRevision.java b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiPageRevision.java index c0e8cfc..aa7dd4d 100644 --- a/src/main/java/eu/mulk/mulkcms2/benki/WikiPageRevision.java +++ b/src/main/java/eu/mulk/mulkcms2/benki/wiki/WikiPageRevision.java @@ -1,6 +1,8 @@ -package eu.mulk.mulkcms2.benki; +package eu.mulk.mulkcms2.benki.wiki; +import eu.mulk.mulkcms2.benki.users.User; import io.quarkus.hibernate.orm.panache.PanacheEntityBase; +import java.time.OffsetDateTime; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; @@ -17,7 +19,7 @@ public class WikiPageRevision extends PanacheEntityBase { public int id; @Column(name = "date", nullable = true) - public Object date; + public OffsetDateTime date; @Column(name = "title", nullable = true, length = -1) public String title; diff --git a/src/main/java/eu/mulk/mulkcms2/cms/users/User.java b/src/main/java/eu/mulk/mulkcms2/cms/users/User.java index a84462f..9ac5da0 100644 --- a/src/main/java/eu/mulk/mulkcms2/cms/users/User.java +++ b/src/main/java/eu/mulk/mulkcms2/cms/users/User.java @@ -11,7 +11,7 @@ import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; -@Entity +@Entity(name = "CmsUser") @Table(name = "users", schema = "public", catalog = "mulkcms") public class User extends PanacheEntityBase { |