From d16dcc0b78870f75a7ea97de882ccf18918b3321 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 19 Sep 2023 14:27:36 +0200
Subject: [PATCH] Fixed some metadata and data issues

---
 .../tuwien/entities/database/table/Table.java  | 18 ++++++++++++++++++
 .../_database_id/table/_table_id/data.vue      |  7 ++-----
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
index f3141e1ab1..fe6edc3e4f 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
@@ -3,6 +3,7 @@ package at.tuwien.entities.database.table;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.table.columns.TableColumn;
 import at.tuwien.entities.database.table.constraints.Constraints;
+import at.tuwien.entities.user.User;
 import lombok.*;
 import lombok.extern.log4j.Log4j2;
 import net.sf.jsqlparser.statement.select.FromItem;
@@ -44,10 +45,27 @@ public class Table {
     @Column(name = "created_by", columnDefinition = "VARCHAR(36)")
     private UUID createdBy;
 
+    @ToString.Exclude
+    @org.springframework.data.annotation.Transient
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumns({
+            @JoinColumn(name = "created_by", referencedColumnName = "ID", insertable = false, updatable = false)
+    })
+    private User creator;
+
+
     @JdbcTypeCode(java.sql.Types.VARCHAR)
     @Column(name = "owned_by", columnDefinition = "VARCHAR(36)")
     private UUID ownedBy;
 
+    @ToString.Exclude
+    @org.springframework.data.annotation.Transient
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumns({
+            @JoinColumn(name = "owned_by", referencedColumnName = "ID", insertable = false, updatable = false)
+    })
+    private User owner;
+
     @Column(name = "tname", nullable = false)
     private String name;
 
diff --git a/dbrepo-ui/pages/database/_database_id/table/_table_id/data.vue b/dbrepo-ui/pages/database/_database_id/table/_table_id/data.vue
index 96ec047712..a4b3d284fb 100644
--- a/dbrepo-ui/pages/database/_database_id/table/_table_id/data.vue
+++ b/dbrepo-ui/pages/database/_database_id/table/_table_id/data.vue
@@ -142,13 +142,10 @@ export default {
       return this.version.substring(0, 10) + 'T' + this.version.substring(11, 19) + 'Z'
     },
     canModify () {
-      if (!this.user || !this.access || !this.table || !this.table.creator) {
+      if (!this.user || !this.access || !this.table) {
         return false
       }
-      if (this.table.creator.username === this.user.username) {
-        return true
-      }
-      if (this.access.type === 'write_own' && this.table.creator.username === this.user.username) {
+      if (this.access.type === 'write_own' && this.table.owner.id === this.user.id) {
         return true
       }
       return this.access.type === 'write_all'
-- 
GitLab