Benki: Sort into a sane folder structure, fix mapping bugs.
Change-Id: I55f5c0349dc580a24506648284ce6483dd952d8a
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/Openids.java b/src/main/java/eu/mulk/mulkcms2/benki/users/Openids.java
new file mode 100644
index 0000000..925584b
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/Openids.java
@@ -0,0 +1,20 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+
+@Entity
+public class Openids extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "openid", nullable = false, length = -1)
+ public String openid;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java
new file mode 100644
index 0000000..6e3db81
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java
@@ -0,0 +1,28 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import java.math.BigInteger;
+import java.util.Collection;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "rsa_keys", schema = "public", catalog = "benki")
+@IdClass(RsaKeyPK.class)
+public class RsaKey extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "modulus", nullable = false, precision = 0)
+ public BigInteger modulus;
+
+ @Id
+ @Column(name = "exponent", nullable = false, precision = 0)
+ public BigInteger exponent;
+
+ @OneToMany(mappedBy = "rsaKey")
+ public Collection<UserRsaKey> users;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKeyPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKeyPK.java
new file mode 100644
index 0000000..5b33ec8
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKeyPK.java
@@ -0,0 +1,60 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+import javax.persistence.Column;
+import javax.persistence.Id;
+
+public class RsaKeyPK implements Serializable {
+
+ private BigInteger modulus;
+ private BigInteger exponent;
+
+ @Column(name = "modulus", nullable = false, precision = 0)
+ @Id
+ public BigInteger getModulus() {
+ return modulus;
+ }
+
+ public void setModulus(BigInteger modulus) {
+ this.modulus = modulus;
+ }
+
+ @Column(name = "exponent", nullable = false, precision = 0)
+ @Id
+ public BigInteger getExponent() {
+ return exponent;
+ }
+
+ public void setExponent(BigInteger exponent) {
+ this.exponent = exponent;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ RsaKeyPK rsaKeyPK = (RsaKeyPK) o;
+
+ if (modulus != null ? !modulus.equals(rsaKeyPK.modulus) : rsaKeyPK.modulus != null) {
+ return false;
+ }
+ if (exponent != null ? !exponent.equals(rsaKeyPK.exponent) : rsaKeyPK.exponent != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = modulus != null ? modulus.hashCode() : 0;
+ result = 31 * result + (exponent != null ? exponent.hashCode() : 0);
+ return result;
+ }
+}
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/users/UserDefaultTarget.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTarget.java
new file mode 100644
index 0000000..ffa5ef7
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTarget.java
@@ -0,0 +1,33 @@
+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;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_default_target", schema = "public", catalog = "benki")
+@IdClass(UserDefaultTargetPK.class)
+public class UserDefaultTarget extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "user", nullable = false)
+ public int userId;
+
+ @Id
+ @Column(name = "target", nullable = false)
+ public int targetId;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+
+ @ManyToOne
+ @JoinColumn(name = "target", referencedColumnName = "id", nullable = false)
+ public Role target;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTargetPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTargetPK.java
new file mode 100644
index 0000000..4a41e7b
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserDefaultTargetPK.java
@@ -0,0 +1,59 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Id;
+
+public class UserDefaultTargetPK implements Serializable {
+
+ private int userId;
+ private int targetId;
+
+ @Column(name = "user", nullable = false)
+ @Id
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ @Column(name = "target", nullable = false)
+ @Id
+ public int getTargetId() {
+ return targetId;
+ }
+
+ public void setTargetId(int targetId) {
+ this.targetId = targetId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ UserDefaultTargetPK that = (UserDefaultTargetPK) o;
+
+ if (userId != that.userId) {
+ return false;
+ }
+ if (targetId != that.targetId) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = userId;
+ result = 31 * result + targetId;
+ return result;
+ }
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserEmailAddress.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserEmailAddress.java
new file mode 100644
index 0000000..9706407
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserEmailAddress.java
@@ -0,0 +1,22 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_email_addresses", schema = "public", catalog = "benki")
+public class UserEmailAddress extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "email", nullable = false, length = -1)
+ public String email;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserJid.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJid.java
new file mode 100644
index 0000000..1c17ca8
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJid.java
@@ -0,0 +1,28 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_jids", schema = "public", catalog = "benki")
+@IdClass(UserJidPK.class)
+public class UserJid extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "user", nullable = false)
+ public int userId;
+
+ @Id
+ @Column(name = "jid", nullable = false, length = -1)
+ public String jid;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserJidPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJidPK.java
new file mode 100644
index 0000000..19eeaeb
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserJidPK.java
@@ -0,0 +1,59 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Id;
+
+public class UserJidPK implements Serializable {
+
+ private int userId;
+ private String jid;
+
+ @Column(name = "user", nullable = false)
+ @Id
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ @Column(name = "jid", nullable = false, length = -1)
+ @Id
+ public String getJid() {
+ return jid;
+ }
+
+ public void setJid(String jid) {
+ this.jid = jid;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ UserJidPK userJidPK = (UserJidPK) o;
+
+ if (userId != userJidPK.userId) {
+ return false;
+ }
+ if (jid != null ? !jid.equals(userJidPK.jid) : userJidPK.jid != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = userId;
+ result = 31 * result + (jid != null ? jid.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserNickname.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserNickname.java
new file mode 100644
index 0000000..b664cb9
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserNickname.java
@@ -0,0 +1,22 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_nicknames", schema = "public", catalog = "benki")
+public class UserNickname extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "nickname", nullable = false, length = -1)
+ public String nickname;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserRole.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRole.java
new file mode 100644
index 0000000..d4c10bd
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRole.java
@@ -0,0 +1,33 @@
+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;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_roles", schema = "public", catalog = "benki")
+@IdClass(UserRolePK.class)
+public class UserRole extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "user", nullable = false)
+ public int userId;
+
+ @Id
+ @Column(name = "role", nullable = false)
+ public int roleId;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+
+ @ManyToOne
+ @JoinColumn(name = "role", referencedColumnName = "id", nullable = false)
+ public Role role;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserRolePK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRolePK.java
new file mode 100644
index 0000000..5649ff4
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRolePK.java
@@ -0,0 +1,59 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Id;
+
+public class UserRolePK implements Serializable {
+
+ private int userId;
+ private int roleId;
+
+ @Column(name = "user", nullable = false)
+ @Id
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ @Column(name = "role", nullable = false)
+ @Id
+ public int getRoleId() {
+ return roleId;
+ }
+
+ public void setRoleId(int roleId) {
+ this.roleId = roleId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ UserRolePK that = (UserRolePK) o;
+
+ if (userId != that.userId) {
+ return false;
+ }
+ if (roleId != that.roleId) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = userId;
+ result = 31 * result + roleId;
+ return result;
+ }
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKey.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKey.java
new file mode 100644
index 0000000..33552e5
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKey.java
@@ -0,0 +1,51 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import java.math.BigInteger;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinColumns;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "user_rsa_keys", schema = "public", catalog = "benki")
+@IdClass(UserRsaKeyPK.class)
+public class UserRsaKey extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "user", nullable = false)
+ public int userId;
+
+ @Id
+ @Column(name = "modulus", nullable = false, precision = 0)
+ public BigInteger modulus;
+
+ @Id
+ @Column(name = "exponent", nullable = false, precision = 0)
+ public BigInteger exponent;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+
+ @ManyToOne
+ @JoinColumns({
+ @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/users/UserRsaKeyPK.java b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKeyPK.java
new file mode 100644
index 0000000..adcaeb6
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/UserRsaKeyPK.java
@@ -0,0 +1,75 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import java.io.Serializable;
+import java.math.BigInteger;
+import javax.persistence.Column;
+import javax.persistence.Id;
+
+public class UserRsaKeyPK implements Serializable {
+
+ private int userId;
+ private BigInteger modulus;
+ private BigInteger exponent;
+
+ @Column(name = "user", nullable = false)
+ @Id
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ @Column(name = "modulus", nullable = false, precision = 0)
+ @Id
+ public BigInteger getModulus() {
+ return modulus;
+ }
+
+ public void setModulus(BigInteger modulus) {
+ this.modulus = modulus;
+ }
+
+ @Column(name = "exponent", nullable = false, precision = 0)
+ @Id
+ public BigInteger getExponent() {
+ return exponent;
+ }
+
+ public void setExponent(BigInteger exponent) {
+ this.exponent = exponent;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ UserRsaKeyPK that = (UserRsaKeyPK) o;
+
+ if (userId != that.userId) {
+ return false;
+ }
+ if (modulus != null ? !modulus.equals(that.modulus) : that.modulus != null) {
+ return false;
+ }
+ if (exponent != null ? !exponent.equals(that.exponent) : that.exponent != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = userId;
+ result = 31 * result + (modulus != null ? modulus.hashCode() : 0);
+ result = 31 * result + (exponent != null ? exponent.hashCode() : 0);
+ return result;
+ }
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/WebId.java b/src/main/java/eu/mulk/mulkcms2/benki/users/WebId.java
new file mode 100644
index 0000000..0a30ff1
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/WebId.java
@@ -0,0 +1,22 @@
+package eu.mulk.mulkcms2.benki.users;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "webids", schema = "public", catalog = "benki")
+public class WebId extends PanacheEntityBase {
+
+ @Id
+ @Column(name = "webid", nullable = false, length = -1)
+ public String webid;
+
+ @ManyToOne
+ @JoinColumn(name = "user", referencedColumnName = "id", nullable = false)
+ public User user;
+}