Benki: Sort into a sane folder structure, fix mapping bugs.
Change-Id: I55f5c0349dc580a24506648284ce6483dd952d8a
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/Bookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/Bookmark.java
deleted file mode 100644
index 220ebfa..0000000
--- a/src/main/java/eu/mulk/mulkcms2/benki/Bookmark.java
+++ /dev/null
@@ -1,39 +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 = "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;
-
- @Column(name = "uri", nullable = false, length = -1)
- public String uri;
-
- @Column(name = "title", nullable = true, length = -1)
- public String title;
-
- @Column(name = "description", nullable = true, length = -1)
- public String description;
-
- @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/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/LazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/LazychatMessage.java
deleted file mode 100644
index 43363d2..0000000
--- a/src/main/java/eu/mulk/mulkcms2/benki/LazychatMessage.java
+++ /dev/null
@@ -1,36 +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 = "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;
-
- @Column(name = "content", nullable = true, length = -1)
- public String content;
-
- @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/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
similarity index 89%
rename from src/main/java/eu/mulk/mulkcms2/benki/PageKey.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/PageKeyPK.java
rename to 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
similarity index 80%
rename from src/main/java/eu/mulk/mulkcms2/benki/Role.java
rename to 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
similarity index 94%
rename from src/main/java/eu/mulk/mulkcms2/benki/RoleSubrole.java
rename to 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
similarity index 95%
rename from src/main/java/eu/mulk/mulkcms2/benki/RoleSubrolePK.java
rename to 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
similarity index 91%
rename from src/main/java/eu/mulk/mulkcms2/benki/RoleTag.java
rename to 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
similarity index 95%
rename from src/main/java/eu/mulk/mulkcms2/benki/RoleTagPK.java
rename to 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/bookmarx/Bookmark.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/Bookmark.java
new file mode 100644
index 0000000..121e340
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/Bookmark.java
@@ -0,0 +1,25 @@
+package eu.mulk.mulkcms2.benki.bookmarx;
+
+import eu.mulk.mulkcms2.benki.generic.Post;
+import java.util.Collection;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "bookmarks", schema = "public", catalog = "benki")
+public class Bookmark extends Post {
+
+ @Column(name = "uri", nullable = false, length = -1)
+ public String uri;
+
+ @Column(name = "title", nullable = true, length = -1)
+ public String title;
+
+ @Column(name = "description", nullable = true, length = -1)
+ public String description;
+
+ @OneToMany(mappedBy = "bookmark")
+ public Collection<BookmarkTag> tags;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/BookmarkTag.java b/src/main/java/eu/mulk/mulkcms2/benki/bookmarx/BookmarkTag.java
similarity index 94%
rename from src/main/java/eu/mulk/mulkcms2/benki/BookmarkTag.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/BookmarkTagPK.java
rename to 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
similarity index 61%
rename from src/main/java/eu/mulk/mulkcms2/benki/Post.java
rename to 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
similarity index 88%
rename from src/main/java/eu/mulk/mulkcms2/benki/PostTarget.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/PostTargetPK.java
rename to 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/lafargue/LazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatMessage.java
new file mode 100644
index 0000000..626f263
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/lafargue/LazychatMessage.java
@@ -0,0 +1,22 @@
+package eu.mulk.mulkcms2.benki.lafargue;
+
+import eu.mulk.mulkcms2.benki.generic.Post;
+import java.util.Collection;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "lazychat_messages", schema = "public", catalog = "benki")
+public class LazychatMessage extends Post {
+
+ @Column(name = "content", nullable = true, length = -1)
+ public String content;
+
+ @Column(name = "format", nullable = false, length = -1)
+ public String format;
+
+ @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
similarity index 95%
rename from src/main/java/eu/mulk/mulkcms2/benki/LazychatReference.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/LazychatReferencePK.java
rename to 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
similarity index 92%
rename from src/main/java/eu/mulk/mulkcms2/benki/Openids.java
rename to 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
similarity index 94%
rename from src/main/java/eu/mulk/mulkcms2/benki/RsaKey.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/RsaKeyPK.java
rename to 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
similarity index 90%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTarget.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserDefaultTargetPK.java
rename to 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
similarity index 93%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserEmailAddress.java
rename to 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
similarity index 94%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserJid.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserJidPK.java
rename to 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
similarity index 93%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserNickname.java
rename to 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
similarity index 90%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserRole.java
rename to 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
similarity index 96%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserRolePK.java
rename to 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
similarity index 71%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserRsaKey.java
rename to 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 @@
@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
similarity index 97%
rename from src/main/java/eu/mulk/mulkcms2/benki/UserRsaKeyPK.java
rename to 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
similarity index 93%
rename from src/main/java/eu/mulk/mulkcms2/benki/WebId.java
rename to 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
similarity index 93%
rename from src/main/java/eu/mulk/mulkcms2/benki/WikiPage.java
rename to 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
similarity index 87%
rename from src/main/java/eu/mulk/mulkcms2/benki/WikiPageRevision.java
rename to 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 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.OneToMany;
import javax.persistence.Table;
-@Entity
+@Entity(name = "CmsUser")
@Table(name = "users", schema = "public", catalog = "mulkcms")
public class User extends PanacheEntityBase {