diff --git a/canapGEST/API/app/Http/Controllers/ApplicantsController.php b/canapGEST/API/app/Http/Controllers/ApplicantsController.php index 9cd0c3e7aa3ae0da293d1e2b4c828b4b777bca34..93ad26066e3a84697b8e632afc05241bf2607022 100644 --- a/canapGEST/API/app/Http/Controllers/ApplicantsController.php +++ b/canapGEST/API/app/Http/Controllers/ApplicantsController.php @@ -74,10 +74,10 @@ class ApplicantsController extends Controller ->get(); } } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } else { - return abort(404, lang::get('http.notfound')); + return response()->json(['error' => 404, 'message' => lang::get('http.notfound')], 404); } } @@ -90,12 +90,12 @@ class ApplicantsController extends Controller $data = AccessLevelHelper::hasPermittedRole($this->user_role, 'formateur') ? $this->getOne($id, true) : $this->getOne($id, false); if ($data['personal_data'] == null) { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } else { return response()->json($data, 200); } } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -108,7 +108,7 @@ class ApplicantsController extends Controller DB::table('applicant')->where('applicant_id', $id)->delete(); return ["message" => lang::get('http.success.deleted.application')]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -120,12 +120,12 @@ class ApplicantsController extends Controller $tmp_file_path = sys_get_temp_dir() . '\\' .$id .'-export.json'; $json = AccessLevelHelper::hasPermittedRole($this->user_role, 'formateur') ? json_encode($this->getOne($id, true)) : json_encode($this->getOne($id, false)); if (json_decode($json)->personal_data == null) { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } File::put($tmp_file_path, $json); return response()->download($tmp_file_path, $id .'-export.json', ['Content-Type' => 'application/json'])->deleteFileAfterSend(true); } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } diff --git a/canapGEST/API/app/Http/Controllers/CommentsController.php b/canapGEST/API/app/Http/Controllers/CommentsController.php index 8e93099306908ef48d0aeaee4dbfbcc212c1aadf..f47149e861b3b0bf2d10dc01d7d2335f5cec0cb7 100644 --- a/canapGEST/API/app/Http/Controllers/CommentsController.php +++ b/canapGEST/API/app/Http/Controllers/CommentsController.php @@ -35,7 +35,7 @@ class CommentsController extends Controller $private_comments = DB::table('comment')->where('fk_applicant_id', $id)->where('comment_is_private', 1)->where('comment_owner_sciper', $this->user_sciper)->get(); return ["public" => $public_comments, "private" => $private_comments]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -70,7 +70,7 @@ class CommentsController extends Controller ]); return ["message" => lang::get('http.success.created.comment'), "id" => $inserted_id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -81,7 +81,7 @@ class CommentsController extends Controller DB::table('comment')->where('comment_id', $id)->where('comment_owner_sciper', $this->user_sciper)->delete(); return ["message" => lang::get('http.success.deleted.comment')]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -105,7 +105,7 @@ class CommentsController extends Controller ]); return ["message" => lang::get('http.success.updated.comment'), "id" => $id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } diff --git a/canapGEST/API/app/Http/Controllers/FilesController.php b/canapGEST/API/app/Http/Controllers/FilesController.php index 803dbbecad978b1a629466eac93a6af3fcce18f4..00004d8c1fbb57397bcb7230e6a0bf7193934c4c 100644 --- a/canapGEST/API/app/Http/Controllers/FilesController.php +++ b/canapGEST/API/app/Http/Controllers/FilesController.php @@ -35,7 +35,7 @@ class FilesController extends Controller $file = DB::table('file')->where('file_id', $id)->first(); return response()->download($file->file_path); } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } } diff --git a/canapGEST/API/app/Http/Controllers/MarkersController.php b/canapGEST/API/app/Http/Controllers/MarkersController.php index 1a166d62d33de1dd9829e472702bd0faae0a08aa..82b7f9564633249474fb60e75db0267f47b7f8dd 100644 --- a/canapGEST/API/app/Http/Controllers/MarkersController.php +++ b/canapGEST/API/app/Http/Controllers/MarkersController.php @@ -21,23 +21,6 @@ class MarkersController extends Controller $this->user_permissions = $this->request->get('user_permissions'); } - // public function getApplicantMarkers($id) - // { - // // Not usefull anymore - // $applicant_job = DB::table('applicant') - // ->join('position', 'applicant.fk_position', '=', 'position.position_id') - // ->join('job', 'position.fk_job', '=', 'job.job_id') - // ->where('applicant_id', $id) - // ->pluck('job_short_value')->first(); - - // $has_access = AccessLevelHelper::hasAccessToJob($applicant_job, $this->user_permissions); - // if ($has_access) { - // return DB::table('marker')->where('fk_applicant_id', $id)->get(); - // } else { - // return abort(403, lang::get('http.unauthorized')); - // } - // } - public function getUserMarkerOnApplicant($id) { $marker = DB::table('marker')->where('fk_applicant_id', $id)->where('marker_owner_sciper', $this->user_sciper)->first(); @@ -69,7 +52,7 @@ class MarkersController extends Controller ]); return ["message" => lang::get('http.success.created.marker'), "id" => $inserted_id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -85,7 +68,7 @@ class MarkersController extends Controller DB::table('marker')->where('marker_id', $id)->update(['marker_value' => $new_value]); return ["message" => lang::get('http.success.updated.marker'), "id" => $id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -96,7 +79,7 @@ class MarkersController extends Controller DB::table('marker')->where('marker_id', $id)->where('marker_owner_sciper', $this->user_sciper)->delete(); return ["message" => lang::get('http.success.deleted.marker')]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } } diff --git a/canapGEST/API/app/Http/Controllers/PositionsController.php b/canapGEST/API/app/Http/Controllers/PositionsController.php index 770f7723bfb8e60b58b07ed234b75b922b3b6eb8..0ca0d8c72ed9029f80ca66e8029fdd34c3f0cb8c 100644 --- a/canapGEST/API/app/Http/Controllers/PositionsController.php +++ b/canapGEST/API/app/Http/Controllers/PositionsController.php @@ -64,7 +64,7 @@ class PositionsController extends Controller ]); return ["message" => lang::get('http.success.created.position'), "id" => $inserted_id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -95,7 +95,7 @@ class PositionsController extends Controller ]); return ["message" => lang::get('http.success.updated.position'), "id" => $id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -107,13 +107,13 @@ class PositionsController extends Controller if ($wanted_position_exists && $has_permitted_role) { if ($wanted_position_in_use) { - return abort(403, lang::get('http.error.deleted.position')); + return response()->json(['error' => 403, 'message' => lang::get('http.error.deleted.position')], 403); } else { DB::table('position')->where('position_id', $id)->delete(); return ["message" => lang::get('http.success.deleted.position')]; } } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -132,7 +132,7 @@ class PositionsController extends Controller ]); return ["message" => lang::get('http.success.created.location'), "id" => $inserted_id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } @@ -153,7 +153,7 @@ class PositionsController extends Controller ]); return ["message" => lang::get('http.success.created.job'), "id" => $inserted_id]; } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } } diff --git a/canapGEST/API/app/Http/Controllers/StatusController.php b/canapGEST/API/app/Http/Controllers/StatusController.php index 81e28a2cf5cc9aac4fce7cfae58177458870b319..cda9a936f4f6fb69524ec0c0b7dc846d9ed2e03e 100644 --- a/canapGEST/API/app/Http/Controllers/StatusController.php +++ b/canapGEST/API/app/Http/Controllers/StatusController.php @@ -45,10 +45,10 @@ class StatusController extends Controller DB::table('applicant')->where('applicant_id', $id)->update(['fk_status' => $new_status]); return ["message" => lang::get('http.success.updated.status'), "id" => $id]; } else { - return abort(404, lang::get('http.notfound')); + return response()->json(['error' => 404, 'message' => lang::get('http.notfound')], 404); } } else { - return abort(403, lang::get('http.unauthorized')); + return response()->json(['error' => 403, 'message' => lang::get('http.unauthorized')], 403); } } } \ No newline at end of file diff --git a/canapGEST/Documentation/journal_travail.xlsx b/canapGEST/Documentation/journal_travail.xlsx index c37596b56131b66192fb845f233594cb0bc6d536..7078266c97cd726736da63548b1bab511b932ef6 100644 Binary files a/canapGEST/Documentation/journal_travail.xlsx and b/canapGEST/Documentation/journal_travail.xlsx differ diff --git a/canapGEST/Site/src/plugins/axios.js b/canapGEST/Site/src/plugins/axios.js index 927f9308b54c00b20c7a3ae5ea20ebed7ba7f35b..660eb3b1fb14142c1d647f96674228dba3ec29d6 100644 --- a/canapGEST/Site/src/plugins/axios.js +++ b/canapGEST/Site/src/plugins/axios.js @@ -1,5 +1,6 @@ import axios from 'axios' import store from '@/store/store.js' +import router from '@/router/index.js' const instance = axios.create({ headers: { 'Authorization': "Bearer " + localStorage.getItem('stored_token') }, @@ -16,6 +17,8 @@ instance.interceptors.response.use(function (response) { // Erreur de token store.commit('moduleSnackbar/toggle', { open: true, message: error.response.data.error, type: 'warning' }, { root: true }) store.dispatch('moduleUser/logout', false) + } else if (error.response.status == 403 || error.response.status == 404) { + router.push({ name: 'error', params: { status: error.response.data.error, message: error.response.data.message, route: '' } }) } else { // Affichage des erreurs (snackbar) Object.values(error.response.data).forEach(errMsg => { diff --git a/canapGEST/Site/src/router/index.js b/canapGEST/Site/src/router/index.js index 80a69e4c80bd3266c55f94ce6c9cfb441b37a993..a3319c55fa074cfb4f76af2aa554cc8f5edf45cf 100644 --- a/canapGEST/Site/src/router/index.js +++ b/canapGEST/Site/src/router/index.js @@ -19,14 +19,14 @@ router.beforeEach((to, from, next) => { // Routes limitées aux responsables let deniedRoutes = ['/openjobs'] if (deniedRoutes.includes(to.fullPath)) { - return next({ name: 'error', params: { status: 403, route: to.path } }) + return next({ name: 'error', params: { status: 403, route: to.path, message: 'Action non autorisée' } }) } } if (routeLimitation == 'formateur' && userRole == 'responsable') { // Routes limitées aux formateurs let deniedRoutes = ['/favourites'] if (deniedRoutes.includes(to.fullPath)) { - return next({ name: 'error', params: { status: 403, route: to.path } }) + return next({ name: 'error', params: { status: 403, route: to.path, message: 'Action non autorisée' } }) } } return next() diff --git a/canapGEST/Site/src/views/ErrorView.vue b/canapGEST/Site/src/views/ErrorView.vue index d0a4dc82ade9d8d7aed4d365d726b0433bd6a67e..a63942cdc1ea4d7eaba85d5b45b9f9c1ecf7f51d 100644 --- a/canapGEST/Site/src/views/ErrorView.vue +++ b/canapGEST/Site/src/views/ErrorView.vue @@ -1,8 +1,9 @@ <template> - <div id="error-view" class="align-center"> - <h1>ERREUR !</h1> - {{status}} + <div id="error-view" class="text-xs-center"> + <h1>Erreur {{status}}</h1> {{route}} + <p>{{message}}</p> + <v-btn @click="$router.push('/')">Retour</v-btn> </div> </template> @@ -11,10 +12,8 @@ export default { name: 'error-view', props: { status: Number, - route: String + route: String, + message: String } } </script> - -<style> -</style>