diff options
author | Derick Montague <derick.montague@ibm.com> | 2019-12-23 22:33:52 +0300 |
---|---|---|
committer | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2020-01-29 01:18:05 +0300 |
commit | 126eaabea5edf8df4ed0dfb9c7af4ea246a5628a (patch) | |
tree | 87f92f49a660f9f77c13358b285a05b71e11c3dc /src | |
parent | 227c41a90d6146f4d0dd42f89df7f03efda895fa (diff) | |
download | webui-vue-126eaabea5edf8df4ed0dfb9c7af4ea246a5628a.tar.xz |
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 <derick.montague@ibm.com>
Change-Id: Id3ea36ba812462be04a450f84f98d0237d6c7c3d
Diffstat (limited to 'src')
-rw-r--r-- | src/router/index.js | 8 | ||||
-rw-r--r-- | src/store/api.js | 6 | ||||
-rw-r--r-- | src/views/Unauthorized/Unauthorized.vue | 20 | ||||
-rw-r--r-- | src/views/Unauthorized/index.js | 2 |
4 files changed, 36 insertions, 0 deletions
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 @@ +<template> + <div> + <PageTitle :description="description" /> + </div> +</template> +<script> +import PageTitle from '../../components/Global/PageTitle'; +export default { + name: 'Unauthorized', + components: { + PageTitle + }, + data() { + return { + description: + 'The attempted action is not accessible from the logged in account. Contact your system administrator to check your privilege role.' + }; + } +}; +</script> 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; |