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