Skip to content
Snippets Groups Projects
Commit 9f5ee3c2 authored by Timothee P's avatar Timothee P :sunflower:
Browse files

apply same rights than feature edition to fast edition mode forms display & submit

parent e1df70a5
No related branches found
No related tags found
No related merge requests found
......@@ -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="previous-feature"
: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,
......
......@@ -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"
>
<FeatureExtraForm
:field="getExtraForm(field)"
......@@ -60,7 +60,7 @@
aria-hidden="true"
/>
<FeatureEditStatusField
v-if="fastEditionMode && form"
v-if="fastEditionMode && canEditFeature && form"
:status="form.status.value"
class="inline"
/>
......@@ -161,7 +161,11 @@ export default {
fastEditionMode: {
type: Boolean,
default: false,
}
},
canEditFeature: {
type: Boolean,
default: false,
},
},
computed: {
......
......@@ -56,7 +56,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 */);
}
......
......@@ -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;
}
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment