Welcome
\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=109ed932&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-layout',[_c('v-flex',[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Client Code\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Type\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Name\")])])]),_c('tbody',_vm._l((_vm.clients),function(client){return _c('tr',{key:client.clientId,on:{\"click\":function($event){return _vm.selectClient(client)}}},[_c('td',[_c('a',{on:{\"click\":function($event){$event.stopPropagation();return _vm.goToClient(client.clientUri)}}},[_vm._v(_vm._s(client.clientCode))])]),_c('td',[_vm._v(_vm._s(client.protocolType))]),_c('td',[_vm._v(_vm._s(client.clientName))]),_c('td',[_c('ul',_vm._l((_vm.resolveGrantTypes(client.clientGrantTypes)),function(grantType){return _c('li',{key:grantType},[_vm._v(\"\\n \"+_vm._s(grantType)+\"\\n \"),(grantType === 'client_credentials')?_c('v-icon',{on:{\"click\":function($event){$event.stopPropagation();return _vm.showSecrets(client)}}},[_vm._v(\"\\n mdi-key\\n \")]):_vm._e()],1)}),0)]),_c('td',[_c('v-icon',{on:{\"click\":function($event){$event.stopPropagation();return _vm.showDeleteClient(client.clientId)}}},[_vm._v(\"\\n mdi-delete-forever\\n \")])],1)])}),0)]),_c('v-dialog',{attrs:{\"max-width\":\"750\",\"persistent\":\"\"},model:{value:(_vm.clientDialog),callback:function ($$v) {_vm.clientDialog=$$v},expression:\"clientDialog\"}},[_c('v-card',{staticClass:\"pa-5\"},[(_vm.selectedClient)?_c('detail',{attrs:{\"client\":_vm.selectedClient}}):_vm._e(),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"red darken-1\",\"text\":\"\"},on:{\"click\":_vm.cancelDialog}},[_vm._v(\"\\n Cancel\\n \")]),_c('v-btn',{attrs:{\"color\":\"green darken-1\",\"text\":\"\"},on:{\"click\":_vm.updateClient}},[_vm._v(\"\\n Save\\n \")])],1)],1)],1),_c('secrets',{attrs:{\"showDialog\":_vm.showSecretsDialog},on:{\"cancelDialog\":_vm.cancelSecretsDialog,\"saveSecret\":_vm.saveSecret}}),_c('delete-dialog',{attrs:{\"showDialog\":_vm.deleteClientDialog},on:{\"deleteClient\":_vm.deleteClient,\"cancelDialog\":_vm.cancelDeleteDialog}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('h3',{staticClass:\"mb-5\"},[_vm._v(\"Edit Client\")]),_c('v-layout',{attrs:{\"row\":\"\"}},[_c('v-flex',{attrs:{\"xs4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Client Code\"},model:{value:(_vm.client.clientCode),callback:function ($$v) {_vm.$set(_vm.client, \"clientCode\", $$v)},expression:\"client.clientCode\"}})],1),_c('v-flex',{attrs:{\"xs6\":\"\",\"ml-4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\"},model:{value:(_vm.client.clientName),callback:function ($$v) {_vm.$set(_vm.client, \"clientName\", $$v)},expression:\"client.clientName\"}})],1)],1),_c('v-layout',{attrs:{\"row\":\"\"}},[_c('v-flex',{attrs:{\"xs4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Protocol Type\"},model:{value:(_vm.client.protocolType),callback:function ($$v) {_vm.$set(_vm.client, \"protocolType\", $$v)},expression:\"client.protocolType\"}})],1),_c('v-flex',{attrs:{\"xs6\":\"\",\"ml-4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"URI\"},model:{value:(_vm.client.clientUri),callback:function ($$v) {_vm.$set(_vm.client, \"clientUri\", $$v)},expression:\"client.clientUri\"}})],1)],1),_c('v-layout',{attrs:{\"row\":\"\"}},[_c('v-flex',{attrs:{\"xs4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Access Token Lifetime (seconds)\"},model:{value:(_vm.client.accessTokenLifetime),callback:function ($$v) {_vm.$set(_vm.client, \"accessTokenLifetime\", $$v)},expression:\"client.accessTokenLifetime\"}})],1),_c('v-flex',{attrs:{\"xs6\":\"\",\"ml-4\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Identity Token Lifetime (seconds)\"},model:{value:(_vm.client.identityTokenLifetime),callback:function ($$v) {_vm.$set(_vm.client, \"identityTokenLifetime\", $$v)},expression:\"client.identityTokenLifetime\"}})],1)],1),_c('v-layout',{attrs:{\"row\":\"\"}},[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-expansion-panels',[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n Grant Types\\n \")]),_c('v-expansion-panel-content',[_c('grant-types',{attrs:{\"grantTypes\":_vm.client.clientGrantTypes}})],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n Redirect\\n \")]),_c('v-expansion-panel-content',[_c('redirect-uris',{attrs:{\"clientRedirectUris\":_vm.client.clientRedirectUris,\"uriType\":'Redirect'}})],1)],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',[_vm._v(\"\\n Post Logout Redirect\\n \")]),_c('v-expansion-panel-content',[_c('redirect-uris',{attrs:{\"clientRedirectUris\":_vm.client.clientPostLogoutRedirectUris,\"uriType\":'Post Logout Redirect'}})],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pa-2 my-2\",attrs:{\"dark\":\"\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.uriType)+\" URIs\")]),_c('v-card-text',[_c('v-flex',[_c('v-data-iterator',{attrs:{\"hide-default-footer\":\"\",\"disable-pagination\":true,\"items\":_vm.uris},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return _vm._l((props.items),function(item,index){return _c('v-layout',{key:index,attrs:{\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"xs8\":\"\"}},[_c('v-text-field',{attrs:{\"value\":item.uri,\"label\":(_vm.uriType + \" URI \" + (index + 1))},on:{\"input\":function($event){return _vm.updateUri(index, $event)}}})],1),_c('v-flex',{staticClass:\"align-self-center\",attrs:{\"xs4\":\"\"}},[_c('v-spacer'),(_vm.resolveIdValue(item) && item.uri)?_c('v-icon',{on:{\"click\":function($event){return _vm.deleteUri(item.clientRedirectUrisId)}}},[_vm._v(\"\\n mdi-delete\\n \")]):_vm._e(),(index===props.items.length-1)?_c('span',{staticClass:\"align-self-center\"},[(!_vm.resolveIdValue(item) && !item.uri)?_c('v-icon',{on:{\"click\":function($event){return _vm.cancelUri(index)}}},[_vm._v(\"\\n mdi-cancel\\n \")]):_vm._e(),(!_vm.resolveIdValue(item) && item.uri)?_c('v-icon',{on:{\"click\":function($event){return _vm.saveUri(index)}}},[_vm._v(\"\\n mdi-content-save\\n \")]):_vm._e(),(_vm.resolveIdValue(item))?_c('v-icon',{on:{\"click\":_vm.newUri}},[_vm._v(\"\\n mdi-plus\\n \")]):_vm._e()],1):_vm._e()],1)],1)})}}])})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nYou do not have access to this application.
\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/vuetify-loader/lib/loader.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccessDenied.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AccessDenied.vue?vue&type=template&id=5b3d1125&\"\nimport script from \"./AccessDenied.vue?vue&type=script&lang=js&\"\nexport * from \"./AccessDenied.vue?vue&type=script&lang=js&\"\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","export default {\n auth: {\n clientId: process.env.VUE_APP_CLIENT_ID,\n authority:\n \"https://login.microsoftonline.com/db864d39-6f92-4586-9073-7e7512028e2c\",\n redirectUri: window.location.origin\n },\n cache: {\n cacheLocation: \"sessionStorage\", // This configures where your cache will be stored\n storeAuthStateInCookie: false // Set this to \"true\" if you are having issues on IE11 or Edge\n }\n};\n","import config from \"./config\";\nimport * as msal from \"@azure/msal-browser\";\n\nconst myMSALObj = new msal.PublicClientApplication(config);\nmyMSALObj.handleRedirectPromise();\n\nexport default {\n async getToken() {\n const tokenRequest = {\n account: this.getCurrentAccount(),\n scopes: [process.env.VUE_APP_AZURE_AD_SCOPE]\n };\n\n if (tokenRequest.account !== null) {\n try {\n let response = await myMSALObj.acquireTokenSilent(tokenRequest);\n\n return response.accessToken;\n } catch (e) {\n console.error(e);\n }\n }\n\n //If we didn't return already then we know we need to get the token using a redirect.\n\n await myMSALObj.acquireTokenRedirect(tokenRequest);\n //Nothing else will execute because we just redirected.\n },\n\n async signIn() {\n await this.getToken();\n },\n\n signOut() {\n const logoutRequest = {\n account: this.getCurrentAccount()\n };\n\n myMSALObj.logoutRedirect(logoutRequest);\n },\n\n async handleRedirectPromise() {\n await myMSALObj.handleRedirectPromise();\n },\n\n getCurrentAccount() {\n let activeAccount = myMSALObj.getActiveAccount();\n\n if (activeAccount == null) {\n const currentAccounts = myMSALObj.getAllAccounts();\n if (currentAccounts.length == 1) {\n myMSALObj.setActiveAccount(currentAccounts[0]);\n activeAccount = currentAccounts[0];\n } else if (currentAccounts.length > 1) {\n // Add choose account code here\n console.warn(\"Multiple accounts detected.\");\n }\n }\n return activeAccount;\n },\n\n isAuthenticated() {\n return this.getCurrentAccount() !== null;\n },\n\n async isAuthorized() {\n return (await this.getToken()) !== null;\n }\n};\n","import Vue from \"vue\";\nimport Router from \"vue-router\";\nimport * as RouteNames from \"./routeNames\";\nimport Home from \"../views/Home.vue\";\nimport Clients from \"../views/Clients.vue\";\nimport Users from \"../views/Users.vue\";\nimport AccessDenied from \"../views/AccessDenied.vue\";\nimport auth from \"../services/auth\";\n\nVue.use(Router);\n\nconst router = new Router({\n routes: [\n {\n path: \"/\",\n name: RouteNames.Home,\n component: Home\n },\n {\n path: \"/accessDenied\",\n name: RouteNames.AccessDenied,\n component: AccessDenied,\n meta: {\n allowAnonymous: true\n }\n },\n {\n path: \"/users\",\n name: RouteNames.Users,\n component: Users\n },\n {\n path: \"/clients\",\n name: RouteNames.Clients,\n component: Clients\n }\n ]\n});\n\nrouter.beforeEach(async (to, from, next) => {\n if (auth.isAuthenticated() && (await auth.isAuthorized())) {\n //User is authenticated and authorized\n if (to.name === RouteNames.AccessDenied) {\n // Don't send an authenticated and authorized user to AccessDenied page, that would be weird.\n next({name: RouteNames.Home});\n return;\n }\n }\n else {\n //User is not authenticated or not authorized\n if (!to.meta || to.meta.allowAnonymous !== true) {\n //Unless this route allows anonymous, this person is not allowed to see it\n next ({name: RouteNames.AccessDenied});\n return;\n }\n }\n\n //We didn't hit a re-route case, so just route to desired route.\n next();\n});\n\nexport default router;\n","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {},\n mutations: {},\n actions: {}\n})\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n icons: {\n iconfont: 'mdi',\n },\n});\n","import axios from 'axios'\nimport auth from '../auth'\n\nconst api = axios.create({\n baseURL: process.env.VUE_APP_AUTH_URI\n})\n\napi.CancelToken = axios.CancelToken\napi.isCancel = axios.isCan\n\napi.interceptors.request.use(async (config) => {\n let accessToken = await auth.getToken();\n if (accessToken) {\n config.headers.Authorization = `Bearer ${accessToken}`\n }\n return config\n})\n\nexport default api","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\nimport store from \"./store\";\nimport vuetify from \"./plugins/vuetify\";\nimport api from \"./services/api\";\nimport VueLodash from \"vue-lodash\";\nimport auth from \"./services/auth\";\n\nauth.handleRedirectPromise().then(async () => {\n if (!auth.isAuthenticated()) {\n await auth.signIn();\n }\n Vue.prototype.$auth = auth;\n Vue.prototype.$http = api;\n Vue.prototype.$eventHub = new Vue();\n \n Vue.config.productionTip = false;\n \n const options = { name: \"lodash\" };\n Vue.use(VueLodash, options);\n \n new Vue({\n router,\n store,\n vuetify,\n render: h => h(App)\n }).$mount(\"#app\");\n \n})"],"sourceRoot":""}