From bd5fb4b76f37a9a0a85b523564677e99bcedaaf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timoth=C3=A9e=20Poussard?= <tpoussard@neogeo.fr>
Date: Thu, 20 Jan 2022 16:32:56 +0100
Subject: [PATCH] change data source for variable is_administrator to fix share
 link

---
 src/views/project/Project_detail.vue | 41 ++++++++++++----------------
 1 file changed, 18 insertions(+), 23 deletions(-)

diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue
index 089980c8..657502a9 100644
--- a/src/views/project/Project_detail.vue
+++ b/src/views/project/Project_detail.vue
@@ -104,7 +104,7 @@
                         permissions.can_update_project &&
                         isOffline() !== true
                     "
-                    :to="{ name: 'project_edit', params: { slug: project.slug } }"
+                    :to="{ name: 'project_edit', params: { slug } }"
                     class="ui button button-hover-orange"
                     data-tooltip="Modifier le projet"
                     data-position="top center"
@@ -113,12 +113,7 @@
                     <i class="inverted grey pencil alternate icon" />
                   </router-link>
                   <a
-                    v-if="
-                      user_permissions &&
-                        user_permissions[project.slug] &&
-                        user_permissions[project.slug].is_project_administrator &&
-                        isOffline() !== true
-                    "
+                    v-if="isProjectAdmin && isOffline() !== true"
                     id="delete-button"
                     class="ui button button-hover-red"
                     data-tooltip="Supprimer le projet"
@@ -130,7 +125,8 @@
                   </a>
                 </div>
                 <button
-                  v-if="user && user.is_administrator && !isSharedProject && project.generate_share_link"
+                  v-if="isProjectAdmin &&
+                    !isSharedProject && project.generate_share_link"
                   class="ui teal left labeled icon button"
                   @click="copyLink"
                 >
@@ -281,12 +277,7 @@
                     v-frag
                   >
                     <a
-                      v-if="
-                        user_permissions &&
-                          user_permissions[project.slug] &&
-                          user_permissions[project.slug].is_project_administrator &&
-                          isOffline() !== true
-                      "
+                      v-if="isProjectAdmin && isOffline() !== true"
                       class="
                         ui
                         compact
@@ -374,7 +365,7 @@
               "
               :to="{
                 name: 'ajouter-type-signalement',
-                params: { slug: project.slug },
+                params: { slug },
               }"
               class="ui compact basic button button-hover-green"
             >
@@ -428,7 +419,7 @@
               :to="{
                 name: 'catalog-import',
                 params: {
-                  slug: project.slug,
+                  slug,
                   feature_type_slug: 'create'
                 },
               }"
@@ -498,7 +489,7 @@
                             :to="{
                               name: 'details-signalement',
                               params: {
-                                slug: project.slug,
+                                slug,
                                 slug_type_signal:
                                   item.properties.feature_type.slug,
                                 slug_signal: item.id,
@@ -857,7 +848,11 @@ export default {
     },
     isSharedProject() {
       return this.$route.path.includes('projet-partage');
-    }
+    },
+    isProjectAdmin() {
+      return this.user_permissions && this.user_permissions[this.slug] &&
+        this.user_permissions[this.slug].is_project_administrator;
+    },
   },
 
   watch: {
@@ -892,7 +887,7 @@ export default {
           !newValue.some((el) => el.status === 'pending') &&
           this.reloadIntervalId
         ) {
-          this.GET_PROJECT_FEATURE_TYPES(this.project.slug);
+          this.GET_PROJECT_FEATURE_TYPES(this.slug);
           this.CLEAR_RELOAD_INTERVAL_ID();
         }
       },
@@ -1006,7 +1001,7 @@ export default {
       if (localStorageArray) {
         arraysOffline = JSON.parse(localStorageArray);
         this.arraysOffline = arraysOffline.filter(
-          (x) => x.project === this.project.slug
+          (x) => x.project === this.slug
         );
       }
     },
@@ -1066,7 +1061,7 @@ export default {
         arraysOffline = JSON.parse(localStorageArray);
       }
       let arraysOfflineOtherProject = arraysOffline.filter(
-        (x) => x.project !== this.project.slug
+        (x) => x.project !== this.slug
       );
       this.arraysOffline = [];
       arraysOffline = arraysOfflineOtherProject.concat(
@@ -1144,7 +1139,7 @@ export default {
     },
 
     deleteProject() {
-      projectAPI.deleteProject(this.API_BASE_URL, this.project.slug)
+      projectAPI.deleteProject(this.API_BASE_URL, this.slug)
         .then((response) => {
           if (response === 'success') {
             this.$router.push('/');
@@ -1235,7 +1230,7 @@ export default {
             this.featuresLoading = false;
           });
 
-        featureAPI.getFeaturesBbox(this.project.slug).then((bbox) => {
+        featureAPI.getFeaturesBbox(this.slug).then((bbox) => {
           if (bbox) {
             mapUtil.getMap().fitBounds(bbox, { padding: [25, 25] });
           }
-- 
GitLab