{"version":3,"sources":["webpack:///./src/helpers/tuitionfees/unauthorized-helper.ts","webpack:///./src/components/tuition-fees/MirroringUserBanner.vue?6eb6","webpack:///./src/components/tuition-fees/MirroringUserBanner.vue?3f8c","webpack:///./src/components/tuition-fees/MirroringUserBanner.vue?0283","webpack:///./src/components/tuition-fees/MirroringUserBanner.vue?1d4b","webpack:///./src/views/TuitionFees/PaymentResponse.vue?8b5a","webpack:///./src/components/tuition-fees/BackToInvoicesButton.vue?4f75","webpack:///./src/components/tuition-fees/BackToInvoicesButton.vue","webpack:///./src/components/tuition-fees/BackToInvoicesButton.vue?4834","webpack:///./src/views/TuitionFees/PaymentResponse.vue?8576","webpack:///./src/views/TuitionFees/PaymentResponse.vue?a6fe","webpack:///./src/views/TuitionFees/PaymentResponse.vue?0492"],"names":["UnauthorizedHelper","currentUser","isMirroringUser","getItem","IsMirroringUser","isEmployee","entitlements","includes","console","warn","this","routeToUnauthorized","openLogin","url","popupParams","window","open","push","name","_hoisted_1","class","_hoisted_2","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","icon","$t","nullLucatId","shortPersonalId","personName","id","onClick","$event","onStopMirroringClicked","props","personalId","type","String","required","lucatId","computed","substr","length","methods","setItem","$router","__exports__","goToTuitionFeeHome","n","key","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_component_MirroringUserBanner","_component_BackToInvoicesButton","paymentResponse","href","mailToLink","components","BackToInvoicesButton","MirroringUserBanner","data","getPaymentResponse","$store","commit","PaymentResponse","getUserId","mirroredUser","MirroredUser","displayName","luEduPersonPrimaryId","checkIfUserIsStudentOrAdminMirroringUser","getters","getCurrentUser","mounted","unmounted","deleteItem"],"mappings":"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","file":"assets/js/chunk-84808c80.e74511c5.js","sourcesContent":["import SessionStorageService from \"@/services/sessionstorage-service\";\r\nimport { SessionStorageKeys } from \"@/constants/constants\";\r\nimport router from \"@/router\";\r\nimport { IUser } from \"@/interfaces/IUser\";\r\n\r\nclass UnauthorizedHelper {\r\n /**\r\n * The function checks if the current user is a student or an admin mirroring a user and returns a boolean value based on the conditions.\r\n * @param {IUser | undefined} currentUser - Represents the current user who is interacting with the system.\r\n * If the user is not logged in, the `currentUser` parameter wil be `undefined` otherwise it will contain the user's information.\r\n * @returns Returns a boolean value representing whether the current user is an admin mirroring a user.\r\n * If the current user is not logged in, the function will open a popup log in window to authorize the user.\r\n * If the current user is logged in but is not an admin mirroring a user or a student,\r\n * the function will redirect the user to the \"Unauthorized\" page.\r\n */\r\n checkIfUserIsStudentOrAdminMirroringUser(\r\n currentUser: IUser | undefined\r\n ): boolean {\r\n const isMirroringUser = SessionStorageService.getItem(\r\n SessionStorageKeys.IsMirroringUser\r\n );\r\n\r\n const isEmployee = currentUser\r\n ? currentUser.entitlements?.includes(\"Employee\")\r\n : false;\r\n\r\n if (!isMirroringUser || isMirroringUser === \"false\") {\r\n if (!currentUser) {\r\n this.openLogin();\r\n } else if (isEmployee) {\r\n console.warn(\r\n \"🚀 ~ UnauthorizedHelper ~ routing to unauthorized:\",\r\n currentUser\r\n );\r\n\r\n this.routeToUnauthorized();\r\n }\r\n }\r\n\r\n return isMirroringUser === \"true\";\r\n }\r\n\r\n /**\r\n * Opens a a popup log in window to authorize the user.\r\n * It is called when the user is not logged in and tries to access a page that requires authentication.\r\n */\r\n private openLogin() {\r\n const url = `${process.env.VUE_APP_BASE_API_URL}authorize`;\r\n const popupParams =\r\n \"scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no\";\r\n window.open(url, \"Login\", popupParams);\r\n }\r\n\r\n /**\r\n * Redirects the user to the \"Unauthorized\" page.\r\n * It is called when the user is logged in but is not a student and tries to access a page that requires student privileges.\r\n */\r\n private routeToUnauthorized() {\r\n router.push({\r\n name: \"Unauthorized\",\r\n });\r\n }\r\n}\r\n\r\nexport default new UnauthorizedHelper();\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./MirroringUserBanner.vue?vue&type=style&index=0&id=ce0bfae8&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-ce0bfae8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mirroring\" }\nconst _hoisted_2 = [\"aria-label\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", null, [\n _createVNode(_component_font_awesome_icon, {\n icon: 'info-circle',\n class: \"info\"\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"tuition-fees.mirroring\")) + \": \" + _toDisplayString(_ctx.nullLucatId) + \" - \" + _toDisplayString(_ctx.shortPersonalId) + \" - \" + _toDisplayString(_ctx.personName), 1)\n ]),\n _createElementVNode(\"button\", {\n id: \"stopMirroringBtn\",\n class: \"btn btn-outline-primary mr-2 stop-btn\",\n \"aria-label\": _ctx.$t('tuition-fees.back'),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onStopMirroringClicked()))\n }, _toDisplayString(_ctx.$t(\"tuition-fees.stop-mirroring\")), 9, _hoisted_2)\n ]))\n}","\r\nimport SessionStorageService from \"@/services/sessionstorage-service\";\r\nimport { SessionStorageKeys } from \"@/constants/constants\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The personal id of the user being mirrored by admin\r\n */\r\n personalId: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The name of the user being mirrored by admin\r\n */\r\n personName: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The lucat id of the user being mirrored by admin\r\n */\r\n lucatId: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n },\r\n computed: {\r\n /**\r\n * The shortened personal id of only the last 10 digits\r\n */\r\n shortPersonalId(): string {\r\n const personalId = this.$props.personalId;\r\n return personalId ? personalId.substr(personalId.length - 10) : \"\";\r\n },\r\n /**\r\n * If the student cannot be found in Ladok, the lucat id will be null\r\n */\r\n nullLucatId(): string {\r\n const lucatId = this.$props.lucatId;\r\n return lucatId ? lucatId : \"\";\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Routes to search user page\r\n */\r\n onStopMirroringClicked(): void {\r\n SessionStorageService.setItem(SessionStorageKeys.IsMirroringUser, false);\r\n this.$router.push({\r\n name: \"MirrorUser\",\r\n });\r\n },\r\n },\r\n})\r\nexport default class MirroringUserBanner extends Vue {}\r\n","import { render } from \"./MirroringUserBanner.vue?vue&type=template&id=ce0bfae8&scoped=true&ts=true\"\nimport script from \"./MirroringUserBanner.vue?vue&type=script&lang=ts\"\nexport * from \"./MirroringUserBanner.vue?vue&type=script&lang=ts\"\n\nimport \"./MirroringUserBanner.vue?vue&type=style&index=0&id=ce0bfae8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-ce0bfae8\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./PaymentResponse.vue?vue&type=style&index=0&id=90329d9c&scoped=true&lang=css\"","import { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"button\", {\n id: \"backBtn\",\n type: \"button\",\n class: \"btn btn-outline-primary mb-3\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.goToTuitionFeeHome()))\n }, \" Return to list of invoices \"))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n methods: {\r\n /**\r\n * Redirects to the tuition fee home page\r\n */\r\n goToTuitionFeeHome(): void {\r\n this.$router.push({\r\n name: \"TuitionFeeHome\",\r\n });\r\n },\r\n },\r\n})\r\nexport default class BackToInvoicesButton extends Vue {}\r\n","import { render } from \"./BackToInvoicesButton.vue?vue&type=template&id=5fca811e&ts=true\"\nimport script from \"./BackToInvoicesButton.vue?vue&type=script&lang=ts\"\nexport * from \"./BackToInvoicesButton.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-90329d9c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h1\", { class: \"page-heading\" }, \"Tuition Fees\", -1))\nconst _hoisted_2 = {\n key: 1,\n class: \"margin-top-10\"\n}\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"page-heading\" }, \"Payment completed\", -1))\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \"The payment has been carried out.\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" Please note that it might take a couple of days for your payment to be fully processed at the university. \", -1))\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" A receipt of your payment has been sent to your student email address. \", -1))\nconst _hoisted_7 = [\n _hoisted_3,\n _hoisted_4,\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = {\n key: 2,\n class: \"margin-top-10\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", { class: \"page-heading\" }, \"Payment failed\", -1))\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", null, \" There was a problem processing your payment. The payment service returned the following error message: \", -1))\nconst _hoisted_11 = { class: \"errorMsg\" }\nconst _hoisted_12 = /*#__PURE__*/_createTextVNode(\" If you need support, please contact the Finance Division at \")\nconst _hoisted_13 = [\"href\"]\nconst _hoisted_14 = { class: \"margin-top-25\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MirroringUserBanner = _resolveComponent(\"MirroringUserBanner\")!\n const _component_BackToInvoicesButton = _resolveComponent(\"BackToInvoicesButton\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (this.isMirroringUser)\n ? (_openBlock(), _createBlock(_component_MirroringUserBanner, {\n key: 0,\n personalId: _ctx.personalId,\n personName: _ctx.personName,\n lucatId: _ctx.lucatId\n }, null, 8, [\"personalId\", \"personName\", \"lucatId\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_1,\n (_ctx.paymentResponse === 'OK')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _hoisted_7))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _hoisted_10,\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.paymentResponse), 1),\n _createElementVNode(\"p\", null, [\n _hoisted_12,\n _createElementVNode(\"a\", { href: _ctx.mailToLink }, \"tuitionfees@eken.lu.se\", 8, _hoisted_13)\n ])\n ])),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_component_BackToInvoicesButton, {\n personalId: _ctx.personalId,\n personName: _ctx.personName,\n lucatId: _ctx.lucatId\n }, null, 8, [\"personalId\", \"personName\", \"lucatId\"])\n ])\n ], 64))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport BackToInvoicesButton from \"@/components/tuition-fees/BackToInvoicesButton.vue\";\r\nimport MirroringUserBanner from \"@/components/tuition-fees/MirroringUserBanner.vue\";\r\nimport { SessionStorageKeys } from \"@/constants/constants\";\r\nimport UnauthorizedHelper from \"@/helpers/tuitionfees/unauthorized-helper\";\r\nimport { TfPerson } from \"@/interfaces/api\";\r\nimport SessionStorageService from \"@/services/sessionstorage-service\";\r\n\r\n@Options({\r\n components: { BackToInvoicesButton, MirroringUserBanner },\r\n data: () => ({\r\n /**\r\n * The payment response retrieved from session storage\r\n * Stored in session storage by CardPayment.vue\r\n */\r\n paymentResponse: \"\",\r\n /**\r\n * The personal id of the user being mirrored by admin\r\n */\r\n personalId: \"\",\r\n /**\r\n * The name of the user being mirrored by admin\r\n */\r\n personName: \"\",\r\n /**\r\n * The lucat id of the user being mirrored by admin\r\n */\r\n lucatId: \"\",\r\n /**\r\n * A boolean to indicate if tfp-admin is mirroring user or not\r\n */\r\n isMirroringUser: false,\r\n }),\r\n computed: {\r\n /**\r\n * The mailto link for contacting servicedesk\r\n */\r\n mailToLink() {\r\n return `\r\n mailto:servicedesk@lu.se?subject=Card%20payment%20failed&body=${this.paymentResponse}`;\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Gets the payment response from session storage\r\n * Stored in session storage by CardPayment.vue\r\n */\r\n getPaymentResponse(): void {\r\n this.$store.commit(\"showSpinner\", false);\r\n\r\n const paymentResponse = SessionStorageService.getItem(\r\n SessionStorageKeys.PaymentResponse\r\n );\r\n\r\n this.paymentResponse = paymentResponse;\r\n\r\n if (!this.paymentResponse) {\r\n this.paymentResponse = \"Unknown error\";\r\n }\r\n },\r\n /**\r\n * Gets the personal id, lucat id and name of the person being mirrored\r\n * Stored in session storage by CardPayment.vue\r\n */\r\n getUserId(): void {\r\n const mirroredUser: TfPerson | undefined = SessionStorageService.getItem(\r\n SessionStorageKeys.MirroredUser\r\n );\r\n\r\n if (mirroredUser) {\r\n this.personName = mirroredUser.displayName;\r\n this.personalId = mirroredUser.personalId;\r\n this.lucatId = mirroredUser.luEduPersonPrimaryId;\r\n }\r\n },\r\n /**\r\n * If not logged in or not a student, redirect to unauthorized page\r\n * Otherwise, check if admin is mirroring a user, if so show banner\r\n * if not redirect to unauthorized page\r\n */\r\n checkIfUserIsStudentOrAdminMirroringUser(): void {\r\n this.currentUser = this.$store.getters.getCurrentUser;\r\n this.isMirroringUser =\r\n UnauthorizedHelper.checkIfUserIsStudentOrAdminMirroringUser(\r\n this.currentUser\r\n );\r\n },\r\n },\r\n mounted() {\r\n this.getUserId();\r\n this.getPaymentResponse();\r\n this.checkIfUserIsStudentOrAdminMirroringUser();\r\n },\r\n unmounted() {\r\n SessionStorageService.deleteItem(SessionStorageKeys.PaymentResponse);\r\n },\r\n})\r\nexport default class PaymentResponse extends Vue {}\r\n","import { render } from \"./PaymentResponse.vue?vue&type=template&id=90329d9c&scoped=true&ts=true\"\nimport script from \"./PaymentResponse.vue?vue&type=script&lang=ts\"\nexport * from \"./PaymentResponse.vue?vue&type=script&lang=ts\"\n\nimport \"./PaymentResponse.vue?vue&type=style&index=0&id=90329d9c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-90329d9c\"]])\n\nexport default __exports__"],"sourceRoot":""}