{"version":3,"sources":["webpack:///./src/views/pages/miscellaneous/NotAuthorized.vue?c4e5","webpack:///./src/@core/layouts/components/Logo.vue?56f8","webpack:///./src/@core/layouts/components/Logo.vue","webpack:///./node_modules/bootstrap-vue/esm/components/image/img.js","webpack:///./src/@core/auth/jwt/jwtDefaultConfig.js","webpack:///./src/@core/auth/jwt/jwtService.js","webpack:///./src/@core/auth/jwt/useJwt.js","webpack:///./src/auth/jwt/useJwt.js","webpack:///./src/views/pages/miscellaneous/NotAuthorized.vue?a446","webpack:///./src/auth/utils.js","webpack:///src/views/pages/miscellaneous/NotAuthorized.vue","webpack:///./src/views/pages/miscellaneous/NotAuthorized.vue?8322","webpack:///./src/views/pages/miscellaneous/NotAuthorized.vue?e4fc","webpack:///./src/assets/images/pages/not-authorized-dark.svg","webpack:///./src/assets/images/pages/not-authorized.svg"],"names":["render","_vm","this","_h","$createElement","_self","_c","_m","staticRenderFns","attrs","script","component","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","BLANK_TEMPLATE","makeBlankImgSrc","width","height","color","src","encodeURIComponent","replace","concat","props","alt","blank","blankColor","block","center","fluid","fluidGrow","left","right","rounded","sizes","srcset","thumbnail","BImg","name","functional","h","_ref","_class","data","align","filter","join","class","loginEndpoint","registerEndpoint","refreshEndpoint","logoutEndpoint","tokenType","storageTokenKeyName","storageRefreshTokenKeyName","JwtService","axiosIns","jwtOverrideConfig","_this","_classCallCheck","_objectSpread","jwtDefaultConfig","jwtConfig","interceptors","request","use","config","accessToken","getToken","headers","Authorization","error","Promise","reject","response","originalRequest","status","isAlreadyFetchingAccessToken","refreshToken","then","r","setToken","setRefreshToken","onAccessTokenFetched","retryOriginalRequest","resolve","addSubscriber","_createClass","subscribers","callback","push","localStorage","getItem","setItem","_this$axiosIns","_len","arguments","length","args","Array","_key","post","apply","_this$axiosIns2","_len2","_key2","getRefreshToken","useJwt","jwt","_useJwt","axios","staticClass","_v","path","imgUrl","getHomeRouteForLoggedInUser","userRole","components","BLink","BButton","VuexyLogo","downImg","require","computed","store","state","appConfig","layout","skin","methods","loginRoute","user","JSON","parse","role","module","exports"],"mappings":"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","file":"js/chunk-1cc9ee4a.2abdea4f.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotAuthorized.vue?vue&type=style&index=0&id=e7a25f3a&prod&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',[_c('img',{attrs:{\"src\":require(\"../../../assets/images/logo/logo.jpg\"),\"alt\":\"\"}})])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=31280e5a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_IMG } from '../../constants/components';\nimport { PROP_TYPE_ARRAY_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { concat } from '../../utils/array';\nimport { identity } from '../../utils/identity';\nimport { isString } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { toString } from '../../utils/string'; // --- Constants --\n// Blank image with fill template\n\nvar BLANK_TEMPLATE = '' + '' + ''; // --- Helper methods ---\n\nvar makeBlankImgSrc = function makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', toString(width)).replace('%{h}', toString(height)).replace('%{f}', color));\n return \"data:image/svg+xml;charset=UTF-8,\".concat(src);\n}; // --- Props ---\n\n\nexport var props = makePropsConfigurable({\n alt: makeProp(PROP_TYPE_STRING),\n blank: makeProp(PROP_TYPE_BOOLEAN, false),\n blankColor: makeProp(PROP_TYPE_STRING, 'transparent'),\n block: makeProp(PROP_TYPE_BOOLEAN, false),\n center: makeProp(PROP_TYPE_BOOLEAN, false),\n fluid: makeProp(PROP_TYPE_BOOLEAN, false),\n // Gives fluid images class `w-100` to make them grow to fit container\n fluidGrow: makeProp(PROP_TYPE_BOOLEAN, false),\n height: makeProp(PROP_TYPE_NUMBER_STRING),\n left: makeProp(PROP_TYPE_BOOLEAN, false),\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n // Possible values:\n // `false`: no rounding of corners\n // `true`: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n rounded: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n sizes: makeProp(PROP_TYPE_ARRAY_STRING),\n src: makeProp(PROP_TYPE_STRING),\n srcset: makeProp(PROP_TYPE_ARRAY_STRING),\n thumbnail: makeProp(PROP_TYPE_BOOLEAN, false),\n width: makeProp(PROP_TYPE_NUMBER_STRING)\n}, NAME_IMG); // --- Main component ---\n// @vue/component\n\nexport var BImg = /*#__PURE__*/extend({\n name: NAME_IMG,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n var alt = props.alt,\n src = props.src,\n block = props.block,\n fluidGrow = props.fluidGrow,\n rounded = props.rounded;\n var width = toInteger(props.width) || null;\n var height = toInteger(props.height) || null;\n var align = null;\n var srcset = concat(props.srcset).filter(identity).join(',');\n var sizes = concat(props.sizes).filter(identity).join(',');\n\n if (props.blank) {\n if (!height && width) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n if (!width && !height) {\n width = 1;\n height = 1;\n } // Make a blank SVG image\n\n\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent'); // Disable srcset and sizes\n\n srcset = null;\n sizes = null;\n }\n\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n\n return h('img', mergeData(data, {\n attrs: {\n src: src,\n alt: alt,\n width: width ? toString(width) : null,\n height: height ? toString(height) : null,\n srcset: srcset || null,\n sizes: sizes || null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || fluidGrow,\n 'w-100': fluidGrow,\n rounded: rounded === '' || rounded === true\n }, _defineProperty(_class, \"rounded-\".concat(rounded), isString(rounded) && rounded !== ''), _defineProperty(_class, align, align), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n});","export default {\r\n // Endpoints\r\n loginEndpoint: '/jwt/login',\r\n registerEndpoint: '/jwt/register',\r\n refreshEndpoint: '/jwt/refresh-token',\r\n logoutEndpoint: '/jwt/logout',\r\n\r\n // This will be prefixed in authorization header with token\r\n // e.g. Authorization: Bearer \r\n tokenType: 'Bearer',\r\n\r\n // Value of this property will be used as key to store JWT token in storage\r\n storageTokenKeyName: 'accessToken',\r\n storageRefreshTokenKeyName: 'refreshToken',\r\n}\r\n","import jwtDefaultConfig from './jwtDefaultConfig'\r\n\r\nexport default class JwtService {\r\n // Will be used by this service for making API calls\r\n axiosIns = null\r\n\r\n // jwtConfig <= Will be used by this service\r\n jwtConfig = { ...jwtDefaultConfig }\r\n\r\n // For Refreshing Token\r\n isAlreadyFetchingAccessToken = false\r\n\r\n // For Refreshing Token\r\n subscribers = []\r\n\r\n constructor(axiosIns, jwtOverrideConfig) {\r\n this.axiosIns = axiosIns\r\n this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }\r\n\r\n // Request Interceptor\r\n this.axiosIns.interceptors.request.use(\r\n config => {\r\n // Get token from localStorage\r\n const accessToken = this.getToken()\r\n\r\n // If token is present add it to request's Authorization Header\r\n if (accessToken) {\r\n // eslint-disable-next-line no-param-reassign\r\n config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\r\n }\r\n return config\r\n },\r\n error => Promise.reject(error),\r\n )\r\n\r\n // Add request/response interceptor\r\n this.axiosIns.interceptors.response.use(\r\n response => response,\r\n error => {\r\n // const { config, response: { status } } = error\r\n const { config, response } = error\r\n const originalRequest = config\r\n\r\n // if (status === 401) {\r\n if (response && response.status === 401) {\r\n if (!this.isAlreadyFetchingAccessToken) {\r\n this.isAlreadyFetchingAccessToken = true\r\n this.refreshToken().then(r => {\r\n this.isAlreadyFetchingAccessToken = false\r\n\r\n // Update accessToken in localStorage\r\n this.setToken(r.data.accessToken)\r\n this.setRefreshToken(r.data.refreshToken)\r\n\r\n this.onAccessTokenFetched(r.data.accessToken)\r\n })\r\n }\r\n const retryOriginalRequest = new Promise(resolve => {\r\n this.addSubscriber(accessToken => {\r\n // Make sure to assign accessToken according to your response.\r\n // Check: https://pixinvent.ticksy.com/ticket/2413870\r\n // Change Authorization header\r\n originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`\r\n resolve(this.axiosIns(originalRequest))\r\n })\r\n })\r\n return retryOriginalRequest\r\n }\r\n return Promise.reject(error)\r\n },\r\n )\r\n }\r\n\r\n onAccessTokenFetched(accessToken) {\r\n this.subscribers = this.subscribers.filter(callback => callback(accessToken))\r\n }\r\n\r\n addSubscriber(callback) {\r\n this.subscribers.push(callback)\r\n }\r\n\r\n getToken() {\r\n return localStorage.getItem(this.jwtConfig.storageTokenKeyName)\r\n }\r\n\r\n getRefreshToken() {\r\n return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)\r\n }\r\n\r\n setToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)\r\n }\r\n\r\n setRefreshToken(value) {\r\n localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)\r\n }\r\n\r\n login(...args) {\r\n return this.axiosIns.post(this.jwtConfig.loginEndpoint, ...args)\r\n }\r\n\r\n register(...args) {\r\n return this.axiosIns.post(this.jwtConfig.registerEndpoint, ...args)\r\n }\r\n\r\n refreshToken() {\r\n return this.axiosIns.post(this.jwtConfig.refreshEndpoint, {\r\n refreshToken: this.getRefreshToken(),\r\n })\r\n }\r\n}\r\n","import JwtService from './jwtService'\r\n\r\nexport default function useJwt(axiosIns, jwtOverrideConfig) {\r\n const jwt = new JwtService(axiosIns, jwtOverrideConfig)\r\n\r\n return {\r\n jwt,\r\n }\r\n}\r\n","import useJwt from '@core/auth/jwt/useJwt'\r\nimport axios from '@axios'\r\n\r\nconst { jwt } = useJwt(axios, {})\r\nexport default jwt\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"misc-wrapper\"},[_c('b-link',{staticClass:\"brand-logo\"},[_c('vuexy-logo'),_c('h2',{staticClass:\"brand-text text-primary ml-1\"},[_vm._v(\" Hệ thống thông tin giải quyết thủ tục hành chính \")])],1),_c('div',{staticClass:\"misc-inner p-2 p-sm-3\"},[_c('div',{staticClass:\"w-100 text-center\"},[_c('h2',{staticClass:\"mb-1\"},[_vm._v(\" Bạn không có quyền! 🔐 \")]),_c('p',{staticClass:\"mb-2\"},[_vm._v(\" Bạn không có quyền truy cập trang này. Quay lại trang chủ!! \")]),_c('b-button',{staticClass:\"mb-1 btn-sm-block\",attrs:{\"variant\":\"primary\",\"to\":{path:'/'}}},[_vm._v(\"Về trang chủ\")]),_c('b-img',{attrs:{\"fluid\":\"\",\"src\":_vm.imgUrl,\"alt\":\"Not authorized page\"}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import useJwt from '@/auth/jwt/useJwt'\r\n\r\n/**\r\n * Return if user is logged in\r\n * This is completely up to you and how you want to store the token in your frontend application\r\n * e.g. If you are using cookies to store the application please update this function\r\n */\r\n// eslint-disable-next-line arrow-body-style\r\nexport const isUserLoggedIn = () => {\r\n return localStorage.getItem('userData') && localStorage.getItem(useJwt.jwtConfig.storageTokenKeyName)\r\n}\r\n\r\nexport const getUserData = () => JSON.parse(localStorage.getItem('userData'))\r\n\r\n/**\r\n * This function is used for demo purpose route navigation\r\n * In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n * Please note role field is just for showing purpose it's not used by anything in frontend\r\n * We are checking role just for ease\r\n * NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = userRole => {\r\n if (userRole === 'admin') return '/'\r\n if (userRole === 'client') return { name: 'access-control' }\r\n return { name: 'auth-login' }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotAuthorized.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotAuthorized.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NotAuthorized.vue?vue&type=template&id=e7a25f3a&\"\nimport script from \"./NotAuthorized.vue?vue&type=script&lang=js&\"\nexport * from \"./NotAuthorized.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NotAuthorized.vue?vue&type=style&index=0&id=e7a25f3a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/not-authorized-dark.3d406fda.svg\";","module.exports = __webpack_public_path__ + \"img/not-authorized.bd09b662.svg\";"],"sourceRoot":""}