diff --git a/src/components/Feature/Detail/FeatureHeader.vue b/src/components/Feature/Detail/FeatureHeader.vue
index ff4fbd0859600dc1ab7c5ba619f15585045bde45..49f1d98c814903ff66820cda039ec3fd0451c3c6 100644
--- a/src/components/Feature/Detail/FeatureHeader.vue
+++ b/src/components/Feature/Detail/FeatureHeader.vue
@@ -3,7 +3,7 @@
     <h1 class="ui header">
       <div class="content">
         <span
-          v-if="fastEditionMode && form"
+          v-if="fastEditionMode && form && canEditFeature"
           class="form ui half-block"
         >
           <input
@@ -73,7 +73,7 @@
           </button>
 
           <button
-            v-if="fastEditionMode && userCanFastEdit"
+            v-if="fastEditionMode && canEditFeature"
             id="save-fast-edit"
             :class="['ui button button-hover-orange tiny-margin', { disabled: false }]"
             data-tooltip="Enregistrer les modifications"
@@ -106,11 +106,7 @@
           </router-link>
 
           <router-link
-            v-if="slugSignal &&
-              ((permissions && permissions.can_update_feature) ||
-                isFeatureCreator ||
-                isModerator)
-            "
+            v-if="slugSignal && canEditFeature"
             id="edit-feature"
             :to="{
               name: 'editer-signalement',
@@ -147,7 +143,7 @@
         <div class="ui hidden divider" />
         <div class="sub header prewrap">
           <span
-            v-if="fastEditionMode && form"
+            v-if="fastEditionMode && canEditFeature && form"
             class="form ui half-block"
           >
             <textarea
@@ -196,12 +192,19 @@ export default {
       type: Boolean,
       default: false,
     },
+    isFeatureCreator: {
+      type: Boolean,
+      default: false,
+    },
+    canEditFeature: {
+      type: Boolean,
+      default: false,
+    },
   },
 
   computed: {
     ...mapState([
       'user',
-      'USER_LEVEL_PROJECTS',
       'isOnline',
     ]),
     ...mapState('feature', [
@@ -212,24 +215,6 @@ export default {
       'permissions',
     ]),
 
-    isFeatureCreator() {
-      if (this.currentFeature && this.user) {
-        return this.currentFeature.creator === this.user.id;
-      }
-      return false;
-    },
-
-    isModerator() {
-      return this.USER_LEVEL_PROJECTS && this.USER_LEVEL_PROJECTS[this.$route.params.slug] === 'Modérateur';
-    },
-
-    userCanFastEdit() {
-      const superiorRoles = ['contributor', 'super_contributor', 'moderator', 'admin'];
-      return this.USER_LEVEL_PROJECTS &&
-        superiorRoles.includes(this.USER_LEVEL_PROJECTS[this.$route.params.slug]) ||
-          this.user.is_superuser;
-    },
-
     queryparams() {
       return this.$route.query.offset >= 0 ? {
         previous: parseInt(this.$route.query.offset) - 1,
diff --git a/src/components/Feature/Detail/FeatureTable.vue b/src/components/Feature/Detail/FeatureTable.vue
index 06bbf0db1bfa0f160f5621dc9ebab3eec2ef63c4..b0e4a8b8e963be24bac5a544dd6464c03d244929 100644
--- a/src/components/Feature/Detail/FeatureTable.vue
+++ b/src/components/Feature/Detail/FeatureTable.vue
@@ -23,7 +23,7 @@
           <td>
             <strong class="ui form">
               <span
-                v-if="fastEditionMode && extra_forms.length > 0"
+                v-if="fastEditionMode && canEditFeature && extra_forms.length > 0"
                 :id="field.label"
               >
                 <FeatureExtraForm
@@ -61,7 +61,7 @@
               aria-hidden="true"
             />
             <FeatureEditStatusField
-              v-if="fastEditionMode && form"
+              v-if="fastEditionMode && canEditFeature && form"
               :status="form.status.value"
               class="inline"
             />
@@ -162,7 +162,11 @@ export default {
     fastEditionMode: {
       type: Boolean,
       default: false,
-    }
+    },
+    canEditFeature: {
+      type: Boolean,
+      default: false,
+    },
   },
 
   computed: {
diff --git a/src/components/Feature/FeatureEditStatusField.vue b/src/components/Feature/FeatureEditStatusField.vue
index 448a227676a3a8b325ccc9633c06f9c7365c58f7..3c4133b5c7ff9b8a459ebca9733bd74268604c98 100644
--- a/src/components/Feature/FeatureEditStatusField.vue
+++ b/src/components/Feature/FeatureEditStatusField.vue
@@ -59,7 +59,7 @@ export default {
     allowedStatusChoices() {
       if (this.project && this.currentFeature && this.user) {
         const isModerate = this.project.moderation;
-        const userStatus = this.USER_LEVEL_PROJECTS[this.project.slug];
+        const userStatus = this.USER_LEVEL_PROJECTS && this.USER_LEVEL_PROJECTS[this.project.slug];
         const isOwnFeature = this.currentFeature.creator === this.user.id; //* si le contributeur est l'auteur du signalement
         return allowedStatus2change(this.user, isModerate, userStatus, isOwnFeature, /* this.currentRouteName */);
       }
diff --git a/src/views/Feature/FeatureDetail.vue b/src/views/Feature/FeatureDetail.vue
index 6926b84925ecad4dde6bd8fe2422beddc5bafdf5..88ae5aa146bde9b12b8093a85b8149ce48ea20e5 100644
--- a/src/views/Feature/FeatureDetail.vue
+++ b/src/views/Feature/FeatureDetail.vue
@@ -13,6 +13,8 @@
             :feature-type="featureType"
             :fast-edition-mode="project.fast_edition_mode"
             :display-to-list-button="displayToListButton"
+            :is-feature-creator="isFeatureCreator"
+            :can-edit-feature="canEditFeature"
             @setIsCancelling="isCanceling = true"
             @tofeature="pushNgo"
           />
@@ -24,6 +26,7 @@
             v-if="project"
             :feature-type="featureType"
             :fast-edition-mode="project.fast_edition_mode"
+            :can-edit-feature="canEditFeature"
             @tofeature="pushNgo"
           />
         </div>
@@ -101,7 +104,7 @@
 </template>
 
 <script>
-import { mapState, mapActions, mapMutations } from 'vuex';
+import { mapState, mapActions, mapMutations, mapGetters } from 'vuex';
 import mapService from '@/services/map-service';
 
 import axios from '@/axios-client.js';
@@ -177,6 +180,9 @@ export default {
   },
 
   computed: {
+    ...mapState([
+      'USER_LEVEL_PROJECTS',
+    ]),
     ...mapState('projects', [
       'project'
     ]),
@@ -188,6 +194,9 @@ export default {
       'currentFeature',
       'form',
     ]),
+    ...mapGetters([
+      'permissions',
+    ]),
 
     hasUnsavedChange() {
       if (this.form) {
@@ -200,6 +209,23 @@ export default {
         }
       }
       return false;
+    },
+
+    isFeatureCreator() {
+      if (this.currentFeature && this.user) {
+        return this.currentFeature.creator === this.user.id;
+      }
+      return false;
+    },
+
+    isModerator() {
+      return this.USER_LEVEL_PROJECTS && this.USER_LEVEL_PROJECTS[this.$route.params.slug] === 'Modérateur';
+    },
+
+    canEditFeature() {
+      return (this.permissions && this.permissions.can_update_feature) ||
+                this.isFeatureCreator ||
+                this.isModerator;
     }
   },