summaryrefslogtreecommitdiff
path: root/src/store/api.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/store/api.js')
-rw-r--r--src/store/api.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/store/api.js b/src/store/api.js
index 45ffc3c9..7d727562 100644
--- a/src/store/api.js
+++ b/src/store/api.js
@@ -1,4 +1,5 @@
import Axios from 'axios';
+import router from '../router';
import { setupCache, buildWebStorage } from 'axios-cache-interceptor';
//Do not change store import.
@@ -36,11 +37,14 @@ api.interceptors.response.use(undefined, (error) => {
}
}
+ // Check if action is unauthorized.
if (response.status == 403) {
- // Check if action is unauthorized.
- // Toast error message will appear on screen
- // when the action is unauthorized.
- store.commit('global/setUnauthorized');
+ if (isPasswordExpired(response)) {
+ router.push('/change-password');
+ } else {
+ // Toast error message will appear on screen.
+ store.commit('global/setUnauthorized');
+ }
}
return Promise.reject(error);
@@ -84,3 +88,13 @@ export const getResponseCount = (responses) => {
errorCount,
};
};
+
+export const isPasswordExpired = (response) => {
+ let extInfoMsgs = response?.data?.['@Message.ExtendedInfo'];
+ return (
+ extInfoMsgs &&
+ extInfoMsgs.find(
+ (i) => i.MessageId.split('.')[4] === 'PasswordChangeRequired',
+ )
+ );
+};