From 8ae3e01043ef90908ee4469551ad3b99c04c5ff5 Mon Sep 17 00:00:00 2001
From: e12024016 <tobias.grantner@tuwien.ac.at>
Date: Mon, 13 Mar 2023 10:51:37 +0100
Subject: [PATCH] Fixed check for database read access

---
 fda-ui/components/DBToolbar.vue                                | 3 +++
 fda-ui/components/TableList.vue                                | 3 +++
 fda-ui/components/TableToolbar.vue                             | 3 +++
 fda-ui/layouts/default.vue                                     | 1 +
 .../database/_database_id/table/_table_id/data.vue             | 3 +++
 .../database/_database_id/table/_table_id/info.vue             | 3 +++
 6 files changed, 16 insertions(+)

diff --git a/fda-ui/components/DBToolbar.vue b/fda-ui/components/DBToolbar.vue
index 45e83f648e..2cf0ca33d3 100644
--- a/fda-ui/components/DBToolbar.vue
+++ b/fda-ui/components/DBToolbar.vue
@@ -101,6 +101,9 @@ export default {
       return this.access.type === 'write_own' || this.access.type === 'write_all'
     },
     canRead () {
+      if (this.database?.is_public) {
+        return true
+      }
       if (!this.access) {
         return false
       }
diff --git a/fda-ui/components/TableList.vue b/fda-ui/components/TableList.vue
index 456a8f6b08..f6ce9958e2 100644
--- a/fda-ui/components/TableList.vue
+++ b/fda-ui/components/TableList.vue
@@ -116,6 +116,9 @@ export default {
       return formatTimestampUTCLabel(this.tableDetails.created)
     },
     canRead () {
+      if (this.database?.is_public) {
+        return true
+      }
       if (!this.user || !this.access) {
         return false
       }
diff --git a/fda-ui/components/TableToolbar.vue b/fda-ui/components/TableToolbar.vue
index c138b2e7dc..ee878a2082 100644
--- a/fda-ui/components/TableToolbar.vue
+++ b/fda-ui/components/TableToolbar.vue
@@ -105,6 +105,9 @@ export default {
       return this.access.type === 'write_own' || this.access.type === 'write_all'
     },
     canRead () {
+      if (this.database?.is_public) {
+        return true
+      }
       if (!this.access) {
         return false
       }
diff --git a/fda-ui/layouts/default.vue b/fda-ui/layouts/default.vue
index a2ced808cf..73a9829d61 100644
--- a/fda-ui/layouts/default.vue
+++ b/fda-ui/layouts/default.vue
@@ -327,6 +327,7 @@ export default {
         this.$store.commit('SET_ACCESS', res.data)
         console.debug('access', this.access)
       } catch (err) {
+        this.$store.commit('SET_ACCESS', null)
         const { status } = err.response
         if (status !== 401 && status !== 403) {
           console.error('Failed to check access', err)
diff --git a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/data.vue b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/data.vue
index 17f58d3b1e..aa865b1e30 100644
--- a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/data.vue
+++ b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/data.vue
@@ -157,6 +157,9 @@ export default {
       return this.access.type === 'write_all'
     },
     canRead () {
+      if (this.database?.is_public) {
+        return true
+      }
       if (!this.user || !this.access) {
         return false
       }
diff --git a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/info.vue b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/info.vue
index 9a27f6db5c..98fe74a3f4 100644
--- a/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/info.vue
+++ b/fda-ui/pages/container/_container_id/database/_database_id/table/_table_id/info.vue
@@ -147,6 +147,9 @@ export default {
       return this.$store.state.table
     },
     canRead () {
+      if (this.database?.is_public) {
+        return true
+      }
       if (!this.user || !this.access) {
         return false
       }
-- 
GitLab