From 126eaabea5edf8df4ed0dfb9c7af4ea246a5628a Mon Sep 17 00:00:00 2001 From: Derick Montague Date: Mon, 23 Dec 2019 13:33:52 -0600 Subject: Add interceptor for 403 response This is a simple solution that is in parity with the current BMC functionality. Once we have mapped permissions, we can create a more elegant solution. Signed-off-by: Derick Montague Change-Id: Id3ea36ba812462be04a450f84f98d0237d6c7c3d --- src/router/index.js | 8 ++++++++ src/store/api.js | 6 ++++++ src/views/Unauthorized/Unauthorized.vue | 20 ++++++++++++++++++++ src/views/Unauthorized/index.js | 2 ++ 4 files changed, 36 insertions(+) create mode 100644 src/views/Unauthorized/Unauthorized.vue create mode 100644 src/views/Unauthorized/index.js (limited to 'src') diff --git a/src/router/index.js b/src/router/index.js index cbebca70..61cb9023 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -28,6 +28,14 @@ const routes = [ meta: { title: 'Local user management' } + }, + { + path: '/unauthorized', + name: 'unauthorized', + component: () => import('@/views/Unauthorized'), + meta: { + title: 'Unauthorized' + } } ] }, diff --git a/src/store/api.js b/src/store/api.js index 04caea12..4918d804 100644 --- a/src/store/api.js +++ b/src/store/api.js @@ -1,4 +1,5 @@ import Axios from 'axios'; +import router from '../router'; const api = Axios.create({ withCredentials: true @@ -6,10 +7,15 @@ const api = Axios.create({ api.interceptors.response.use(undefined, error => { let response = error.response; + // TODO: Provide user with a notification and way to keep system active if (response.status == 401) { window.location = '/login'; } + + if (response.status == 403) { + router.push({ name: 'unauthorized' }); + } }); export default { diff --git a/src/views/Unauthorized/Unauthorized.vue b/src/views/Unauthorized/Unauthorized.vue new file mode 100644 index 00000000..446270d7 --- /dev/null +++ b/src/views/Unauthorized/Unauthorized.vue @@ -0,0 +1,20 @@ + + diff --git a/src/views/Unauthorized/index.js b/src/views/Unauthorized/index.js new file mode 100644 index 00000000..4b4364bf --- /dev/null +++ b/src/views/Unauthorized/index.js @@ -0,0 +1,2 @@ +import Unauthorized from './Unauthorized.vue'; +export default Unauthorized; -- cgit v1.2.3