diff --git a/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.js b/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.js index f761d4274..787befe0b 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.js +++ b/src/Bundle/ChillMainBundle/Resources/public/lib/api/apiMethods.js @@ -21,7 +21,7 @@ const makeFetch = (method, url, body) => { } if (response.status === 403) { - throw AccessException(); + throw AccessException(response); } throw { @@ -86,15 +86,21 @@ const ValidationException = (response) => { error.violations = response.violations.map((violation) => `${violation.title}: ${violation.propertyPath}`); error.titles = response.violations.map((violation) => violation.title); error.propertyPaths = response.violations.map((violation) => violation.propertyPath); - return error; } -const AccessException = () => { +const AccessException = (response) => { const error = {}; error.name = 'AccessException'; - error.violations = ['You are not allowed to perform this action']; + switch (response.url) { + case 'http://localhost:8001/api/1.0/person/accompanying-course/5183/intensity.json': + error.violations = ['Only the referrer is allowed to change the intensity of a parcours']; + break; + default: + error.violations = ['You are not allowed to perform this action']; + break; + } return error; } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/Banner/ToggleFlags.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/Banner/ToggleFlags.vue index 490bf4d9f..d76762372 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/Banner/ToggleFlags.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/components/Banner/ToggleFlags.vue @@ -58,7 +58,7 @@ export default { this.$store.dispatch('toggleIntensity', value) .catch(({name, violations}) => { if (name === 'ValidationException' || name === 'AccessException') { - violations.forEach((violation) => this.$toast.open({message: violation})); + violations.forEach((violation) => this.$toast.open({message: this.$t(violation)})); } else { this.$toast.open({message: 'An error occurred'}) } diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js index 49253eab8..e9d0c7fc8 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourse/js/i18n.js @@ -167,6 +167,7 @@ const appMessages = { 'Error while retriving users.': "Erreur du serveur lors du chargement de la liste des travailleurs.", 'Error while getting whoami.': "Erreur du serveur lors de la requête 'qui suis-je ?'", 'Error while retriving origin\'s list.': "Erreur du serveur lors du chargement de la liste des origines de la demande.", + 'Only the referrer is allowed to change the intensity of a parcours': "Seul le référent peut modifier l'intensité d'un parcours." } };