1 |
- {"version":3,"file":"oauth2-oauth2.js?v=65e2c26f37a1c799ae17","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?414b","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?7546","webpack://nextcloud/./apps/oauth2/src/components/OAuthItem.vue?098f","webpack:///nextcloud/apps/oauth2/src/App.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/oauth2/src/App.vue","webpack://nextcloud/./apps/oauth2/src/App.vue?b484","webpack://nextcloud/./apps/oauth2/src/App.vue?8831","webpack://nextcloud/./apps/oauth2/src/App.vue?40c9","webpack:///nextcloud/apps/oauth2/src/main.js","webpack:///nextcloud/apps/oauth2/src/App.vue?vue&type=style&index=0&id=9ac8f91c&prod&scoped=true&lang=css&","webpack:///nextcloud/apps/oauth2/src/components/OAuthItem.vue?vue&type=style&index=0&id=142f39d4&prod&scoped=true&lang=css&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @author Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<tr>\n\t\t<td>\n\t\t\t<table class=\"inline\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{{ t('oauth2', 'Name') }}</td>\n\t\t\t\t\t<td>{{ name }}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{{ t('oauth2', 'Redirection URI') }}</td>\n\t\t\t\t\t<td>{{ redirectUri }}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{{ t('oauth2', 'Client Identifier') }}</td>\n\t\t\t\t\t<td><code>{{ clientId }}</code></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>{{ t('oauth2', 'Secret') }}</td>\n\t\t\t\t\t<td><code>{{ renderedSecret }}</code><a class=\"icon-toggle has-tooltip\" :title=\"t('oauth2', 'Show client secret')\" @click=\"toggleSecret\" /></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</td>\n\t\t<td class=\"action-column\">\n\t\t\t<NcButton type=\"tertiary-no-background\"\n\t\t\t\t:aria-label=\"t('oauth2', 'Delete')\"\n\t\t\t\t@click=\"$emit('delete', id)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\"\n\t\t\t\t\t\t:title=\"t('oauth2', 'Delete')\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</td>\n\t</tr>\n</template>\n\n<script>\n\nimport Delete from 'vue-material-design-icons/Delete.vue'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\n\nexport default {\n\tname: 'OAuthItem',\n\tcomponents: {\n\t\tDelete,\n\t\tNcButton,\n\t},\n\tprops: {\n\t\tclient: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tid: this.client.id,\n\t\t\tname: this.client.name,\n\t\t\tredirectUri: this.client.redirectUri,\n\t\t\tclientId: this.client.clientId,\n\t\t\tclientSecret: this.client.clientSecret,\n\t\t\trenderSecret: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\trenderedSecret() {\n\t\t\tif (this.renderSecret) {\n\t\t\t\treturn this.clientSecret\n\t\t\t} else {\n\t\t\t\treturn '****'\n\t\t\t}\n\t\t},\n\t},\n\tmethods: {\n\t\ttoggleSecret() {\n\t\t\tthis.renderSecret = !this.renderSecret\n\t\t},\n\t},\n}\n</script>\n\n<style scoped>\n\t.icon-toggle,\n\t.icon-delete {\n\t\tdisplay: inline-block;\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tpadding: 10px;\n\t\tvertical-align: middle;\n\t}\n\ttd code {\n\t\tdisplay: inline-block;\n\t\tvertical-align: middle;\n\t}\n\ttable.inline td {\n\t\tborder: none;\n\t\tpadding: 5px;\n\t}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=style&index=0&id=142f39d4&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OAuthItem.vue?vue&type=style&index=0&id=142f39d4&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./OAuthItem.vue?vue&type=template&id=142f39d4&scoped=true&\"\nimport script from \"./OAuthItem.vue?vue&type=script&lang=js&\"\nexport * from \"./OAuthItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OAuthItem.vue?vue&type=style&index=0&id=142f39d4&prod&scoped=true&lang=css&\"\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 \"142f39d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',[_c('td',[_c('table',{staticClass:\"inline\"},[_c('tr',[_c('td',[_vm._v(_vm._s(_vm.t('oauth2', 'Name')))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.name))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.t('oauth2', 'Redirection URI')))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.redirectUri))])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.t('oauth2', 'Client Identifier')))]),_vm._v(\" \"),_c('td',[_c('code',[_vm._v(_vm._s(_vm.clientId))])])]),_vm._v(\" \"),_c('tr',[_c('td',[_vm._v(_vm._s(_vm.t('oauth2', 'Secret')))]),_vm._v(\" \"),_c('td',[_c('code',[_vm._v(_vm._s(_vm.renderedSecret))]),_c('a',{staticClass:\"icon-toggle has-tooltip\",attrs:{\"title\":_vm.t('oauth2', 'Show client secret')},on:{\"click\":_vm.toggleSecret}})])])])]),_vm._v(\" \"),_c('td',{staticClass:\"action-column\"},[_c('NcButton',{attrs:{\"type\":\"tertiary-no-background\",\"aria-label\":_vm.t('oauth2', 'Delete')},on:{\"click\":function($event){return _vm.$emit('delete', _vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20,\"title\":_vm.t('oauth2', 'Delete')}})]},proxy:true}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @author Roeland Jago Douma <roeland@famdouma.nl>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<template>\n\t<NcSettingsSection :name=\"t('oauth2', 'OAuth 2.0 clients')\"\n\t\t:description=\"t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName })\"\n\t\t:doc-url=\"oauthDocLink\">\n\t\t<table v-if=\"clients.length > 0\" class=\"grid\">\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th id=\"headerContent\" />\n\t\t\t\t\t<th id=\"headerRemove\">\n \n\t\t\t\t\t</th>\n\t\t\t\t</tr>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<OAuthItem v-for=\"client in clients\"\n\t\t\t\t\t:key=\"client.id\"\n\t\t\t\t\t:client=\"client\"\n\t\t\t\t\t@delete=\"deleteClient\" />\n\t\t\t</tbody>\n\t\t</table>\n\n\t\t<br>\n\t\t<h3>{{ t('oauth2', 'Add client') }}</h3>\n\t\t<span v-if=\"newClient.error\" class=\"msg error\">{{ newClient.errorMsg }}</span>\n\t\t<form class=\"oauth2-form\" @submit.prevent=\"addClient\">\n\t\t\t<NcTextField id=\"name\"\n\t\t\t\t:value.sync=\"newClient.name\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tclass=\"oauth2-form--input\"\n\t\t\t\tname=\"name\"\n\t\t\t\t:label=\"t('oauth2', 'Name')\"\n\t\t\t\t:placeholder=\"t('oauth2', 'Name')\" />\n\t\t\t<NcTextField id=\"redirectUri\"\n\t\t\t\t:value.sync=\"newClient.redirectUri\"\n\t\t\t\ttype=\"url\"\n\t\t\t\tclass=\"oauth2-form--input\"\n\t\t\t\tname=\"redirectUri\"\n\t\t\t\t:label=\"t('oauth2', 'Redirection URI')\"\n\t\t\t\t:placeholder=\"t('oauth2', 'Redirection URI')\" />\n\t\t\t<NcButton native-type=\"submit\" class=\"inline-button\">\n\t\t\t\t{{ t('oauth2', 'Add') }}\n\t\t\t</NcButton>\n\t\t</form>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport axios from '@nextcloud/axios'\nimport OAuthItem from './components/OAuthItem.vue'\nimport { generateUrl } from '@nextcloud/router'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\nimport { loadState } from '@nextcloud/initial-state'\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\n\nexport default {\n\tname: 'App',\n\tcomponents: {\n\t\tOAuthItem,\n\t\tNcSettingsSection,\n\t\tNcButton,\n\t\tNcTextField,\n\t},\n\tprops: {\n\t\tclients: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnewClient: {\n\t\t\t\tname: '',\n\t\t\t\tredirectUri: '',\n\t\t\t\terrorMsg: '',\n\t\t\t\terror: false,\n\t\t\t},\n\t\t\toauthDocLink: loadState('oauth2', 'oauth2-doc-link'),\n\t\t}\n\t},\n\tcomputed: {\n\t\tinstanceName() {\n\t\t\treturn getCapabilities().theming.name\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteClient(id) {\n\t\t\taxios.delete(generateUrl('apps/oauth2/clients/{id}', { id }))\n\t\t\t\t.then((response) => {\n\t\t\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\t\t\tthis.clients = this.clients.filter(client => client.id !== id)\n\t\t\t\t})\n\t\t},\n\t\taddClient() {\n\t\t\tthis.newClient.error = false\n\n\t\t\taxios.post(\n\t\t\t\tgenerateUrl('apps/oauth2/clients'),\n\t\t\t\t{\n\t\t\t\t\tname: this.newClient.name,\n\t\t\t\t\tredirectUri: this.newClient.redirectUri,\n\t\t\t\t}\n\t\t\t).then(response => {\n\t\t\t\t// eslint-disable-next-line vue/no-mutating-props\n\t\t\t\tthis.clients.push(response.data)\n\n\t\t\t\tthis.newClient.name = ''\n\t\t\t\tthis.newClient.redirectUri = ''\n\t\t\t}).catch(reason => {\n\t\t\t\tthis.newClient.error = true\n\t\t\t\tthis.newClient.errorMsg = reason.response.data.message\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n\ttable {\n\t\tmax-width: 800px;\n\t}\n\n\t/** Overwrite button height and position to be aligned with the text input */\n\t.inline-button {\n\t\tmin-height: 34px !important;\n\t\tdisplay: inline-flex !important;\n\t}\n\t.oauth2-form {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\t.oauth2-form--input {\n\t\tmax-width: 200px;\n\t\tmargin-right: 10px;\n\t}\n</style>\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=9ac8f91c&prod&scoped=true&lang=css&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=9ac8f91c&prod&scoped=true&lang=css&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=9ac8f91c&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=9ac8f91c&prod&scoped=true&lang=css&\"\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 \"9ac8f91c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcSettingsSection',{attrs:{\"name\":_vm.t('oauth2', 'OAuth 2.0 clients'),\"description\":_vm.t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName: _vm.instanceName }),\"doc-url\":_vm.oauthDocLink}},[(_vm.clients.length > 0)?_c('table',{staticClass:\"grid\"},[_c('thead',[_c('tr',[_c('th',{attrs:{\"id\":\"headerContent\"}}),_vm._v(\" \"),_c('th',{attrs:{\"id\":\"headerRemove\"}},[_vm._v(\"\\n \\n\\t\\t\\t\\t\\t\")])])]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.clients),function(client){return _c('OAuthItem',{key:client.id,attrs:{\"client\":client},on:{\"delete\":_vm.deleteClient}})}),1)]):_vm._e(),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('h3',[_vm._v(_vm._s(_vm.t('oauth2', 'Add client')))]),_vm._v(\" \"),(_vm.newClient.error)?_c('span',{staticClass:\"msg error\"},[_vm._v(_vm._s(_vm.newClient.errorMsg))]):_vm._e(),_vm._v(\" \"),_c('form',{staticClass:\"oauth2-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.addClient.apply(null, arguments)}}},[_c('NcTextField',{staticClass:\"oauth2-form--input\",attrs:{\"id\":\"name\",\"value\":_vm.newClient.name,\"type\":\"text\",\"name\":\"name\",\"label\":_vm.t('oauth2', 'Name'),\"placeholder\":_vm.t('oauth2', 'Name')},on:{\"update:value\":function($event){return _vm.$set(_vm.newClient, \"name\", $event)}}}),_vm._v(\" \"),_c('NcTextField',{staticClass:\"oauth2-form--input\",attrs:{\"id\":\"redirectUri\",\"value\":_vm.newClient.redirectUri,\"type\":\"url\",\"name\":\"redirectUri\",\"label\":_vm.t('oauth2', 'Redirection URI'),\"placeholder\":_vm.t('oauth2', 'Redirection URI')},on:{\"update:value\":function($event){return _vm.$set(_vm.newClient, \"redirectUri\", $event)}}}),_vm._v(\" \"),_c('NcButton',{staticClass:\"inline-button\",attrs:{\"native-type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('oauth2', 'Add'))+\"\\n\\t\\t\\t\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\nimport App from './App.vue'\nimport { loadState } from '@nextcloud/initial-state'\n\nVue.prototype.t = t\nVue.prototype.OC = OC\n\nconst clients = loadState('oauth2', 'clients')\n\nconst View = Vue.extend(App)\nconst oauth = new View({\n\tpropsData: {\n\t\tclients,\n\t},\n})\noauth.$mount('#oauth2')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\ntable[data-v-9ac8f91c] {\\n\\tmax-width: 800px;\\n}\\n\\n/** Overwrite button height and position to be aligned with the text input */\\n.inline-button[data-v-9ac8f91c] {\\n\\tmin-height: 34px !important;\\n\\tdisplay: inline-flex !important;\\n}\\n.oauth2-form[data-v-9ac8f91c] {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n}\\n.oauth2-form--input[data-v-9ac8f91c] {\\n\\tmax-width: 200px;\\n\\tmargin-right: 10px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/oauth2/src/App.vue\"],\"names\":[],\"mappings\":\";AA8JA;CACA,gBAAA;AACA;;AAEA,4EAAA;AACA;CACA,2BAAA;CACA,+BAAA;AACA;AACA;CACA,aAAA;CACA,mBAAA;AACA;AACA;CACA,gBAAA;CACA,kBAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>\\n -\\n - @author Roeland Jago Douma <roeland@famdouma.nl>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n<template>\\n\\t<NcSettingsSection :name=\\\"t('oauth2', 'OAuth 2.0 clients')\\\"\\n\\t\\t:description=\\\"t('oauth2', 'OAuth 2.0 allows external services to request access to {instanceName}.', { instanceName })\\\"\\n\\t\\t:doc-url=\\\"oauthDocLink\\\">\\n\\t\\t<table v-if=\\\"clients.length > 0\\\" class=\\\"grid\\\">\\n\\t\\t\\t<thead>\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<th id=\\\"headerContent\\\" />\\n\\t\\t\\t\\t\\t<th id=\\\"headerRemove\\\">\\n \\n\\t\\t\\t\\t\\t</th>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t</thead>\\n\\t\\t\\t<tbody>\\n\\t\\t\\t\\t<OAuthItem v-for=\\\"client in clients\\\"\\n\\t\\t\\t\\t\\t:key=\\\"client.id\\\"\\n\\t\\t\\t\\t\\t:client=\\\"client\\\"\\n\\t\\t\\t\\t\\t@delete=\\\"deleteClient\\\" />\\n\\t\\t\\t</tbody>\\n\\t\\t</table>\\n\\n\\t\\t<br>\\n\\t\\t<h3>{{ t('oauth2', 'Add client') }}</h3>\\n\\t\\t<span v-if=\\\"newClient.error\\\" class=\\\"msg error\\\">{{ newClient.errorMsg }}</span>\\n\\t\\t<form class=\\\"oauth2-form\\\" @submit.prevent=\\\"addClient\\\">\\n\\t\\t\\t<NcTextField id=\\\"name\\\"\\n\\t\\t\\t\\t:value.sync=\\\"newClient.name\\\"\\n\\t\\t\\t\\ttype=\\\"text\\\"\\n\\t\\t\\t\\tclass=\\\"oauth2-form--input\\\"\\n\\t\\t\\t\\tname=\\\"name\\\"\\n\\t\\t\\t\\t:label=\\\"t('oauth2', 'Name')\\\"\\n\\t\\t\\t\\t:placeholder=\\\"t('oauth2', 'Name')\\\" />\\n\\t\\t\\t<NcTextField id=\\\"redirectUri\\\"\\n\\t\\t\\t\\t:value.sync=\\\"newClient.redirectUri\\\"\\n\\t\\t\\t\\ttype=\\\"url\\\"\\n\\t\\t\\t\\tclass=\\\"oauth2-form--input\\\"\\n\\t\\t\\t\\tname=\\\"redirectUri\\\"\\n\\t\\t\\t\\t:label=\\\"t('oauth2', 'Redirection URI')\\\"\\n\\t\\t\\t\\t:placeholder=\\\"t('oauth2', 'Redirection URI')\\\" />\\n\\t\\t\\t<NcButton native-type=\\\"submit\\\" class=\\\"inline-button\\\">\\n\\t\\t\\t\\t{{ t('oauth2', 'Add') }}\\n\\t\\t\\t</NcButton>\\n\\t\\t</form>\\n\\t</NcSettingsSection>\\n</template>\\n\\n<script>\\nimport axios from '@nextcloud/axios'\\nimport OAuthItem from './components/OAuthItem.vue'\\nimport { generateUrl } from '@nextcloud/router'\\nimport { getCapabilities } from '@nextcloud/capabilities'\\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\nimport { loadState } from '@nextcloud/initial-state'\\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js'\\n\\nexport default {\\n\\tname: 'App',\\n\\tcomponents: {\\n\\t\\tOAuthItem,\\n\\t\\tNcSettingsSection,\\n\\t\\tNcButton,\\n\\t\\tNcTextField,\\n\\t},\\n\\tprops: {\\n\\t\\tclients: {\\n\\t\\t\\ttype: Array,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tnewClient: {\\n\\t\\t\\t\\tname: '',\\n\\t\\t\\t\\tredirectUri: '',\\n\\t\\t\\t\\terrorMsg: '',\\n\\t\\t\\t\\terror: false,\\n\\t\\t\\t},\\n\\t\\t\\toauthDocLink: loadState('oauth2', 'oauth2-doc-link'),\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\tinstanceName() {\\n\\t\\t\\treturn getCapabilities().theming.name\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\tdeleteClient(id) {\\n\\t\\t\\taxios.delete(generateUrl('apps/oauth2/clients/{id}', { id }))\\n\\t\\t\\t\\t.then((response) => {\\n\\t\\t\\t\\t\\t// eslint-disable-next-line vue/no-mutating-props\\n\\t\\t\\t\\t\\tthis.clients = this.clients.filter(client => client.id !== id)\\n\\t\\t\\t\\t})\\n\\t\\t},\\n\\t\\taddClient() {\\n\\t\\t\\tthis.newClient.error = false\\n\\n\\t\\t\\taxios.post(\\n\\t\\t\\t\\tgenerateUrl('apps/oauth2/clients'),\\n\\t\\t\\t\\t{\\n\\t\\t\\t\\t\\tname: this.newClient.name,\\n\\t\\t\\t\\t\\tredirectUri: this.newClient.redirectUri,\\n\\t\\t\\t\\t}\\n\\t\\t\\t).then(response => {\\n\\t\\t\\t\\t// eslint-disable-next-line vue/no-mutating-props\\n\\t\\t\\t\\tthis.clients.push(response.data)\\n\\n\\t\\t\\t\\tthis.newClient.name = ''\\n\\t\\t\\t\\tthis.newClient.redirectUri = ''\\n\\t\\t\\t}).catch(reason => {\\n\\t\\t\\t\\tthis.newClient.error = true\\n\\t\\t\\t\\tthis.newClient.errorMsg = reason.response.data.message\\n\\t\\t\\t})\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n\\ttable {\\n\\t\\tmax-width: 800px;\\n\\t}\\n\\n\\t/** Overwrite button height and position to be aligned with the text input */\\n\\t.inline-button {\\n\\t\\tmin-height: 34px !important;\\n\\t\\tdisplay: inline-flex !important;\\n\\t}\\n\\t.oauth2-form {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: row;\\n\\t}\\n\\t.oauth2-form--input {\\n\\t\\tmax-width: 200px;\\n\\t\\tmargin-right: 10px;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\\n.icon-toggle[data-v-142f39d4],\\n.icon-delete[data-v-142f39d4] {\\n\\tdisplay: inline-block;\\n\\twidth: 16px;\\n\\theight: 16px;\\n\\tpadding: 10px;\\n\\tvertical-align: middle;\\n}\\ntd code[data-v-142f39d4] {\\n\\tdisplay: inline-block;\\n\\tvertical-align: middle;\\n}\\ntable.inline td[data-v-142f39d4] {\\n\\tborder: none;\\n\\tpadding: 5px;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/oauth2/src/components/OAuthItem.vue\"],\"names\":[],\"mappings\":\";AAuHA;;CAEA,qBAAA;CACA,WAAA;CACA,YAAA;CACA,aAAA;CACA,sBAAA;AACA;AACA;CACA,qBAAA;CACA,sBAAA;AACA;AACA;CACA,YAAA;CACA,YAAA;AACA\",\"sourcesContent\":[\"<!--\\n - @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl>\\n -\\n - @author Roeland Jago Douma <roeland@famdouma.nl>\\n -\\n - @license GNU AGPL version 3 or any later version\\n -\\n - This program is free software: you can redistribute it and/or modify\\n - it under the terms of the GNU Affero General Public License as\\n - published by the Free Software Foundation, either version 3 of the\\n - License, or (at your option) any later version.\\n -\\n - This program is distributed in the hope that it will be useful,\\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n - GNU Affero General Public License for more details.\\n -\\n - You should have received a copy of the GNU Affero General Public License\\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\\n -\\n -->\\n<template>\\n\\t<tr>\\n\\t\\t<td>\\n\\t\\t\\t<table class=\\\"inline\\\">\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<td>{{ t('oauth2', 'Name') }}</td>\\n\\t\\t\\t\\t\\t<td>{{ name }}</td>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<td>{{ t('oauth2', 'Redirection URI') }}</td>\\n\\t\\t\\t\\t\\t<td>{{ redirectUri }}</td>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<td>{{ t('oauth2', 'Client Identifier') }}</td>\\n\\t\\t\\t\\t\\t<td><code>{{ clientId }}</code></td>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t\\t<tr>\\n\\t\\t\\t\\t\\t<td>{{ t('oauth2', 'Secret') }}</td>\\n\\t\\t\\t\\t\\t<td><code>{{ renderedSecret }}</code><a class=\\\"icon-toggle has-tooltip\\\" :title=\\\"t('oauth2', 'Show client secret')\\\" @click=\\\"toggleSecret\\\" /></td>\\n\\t\\t\\t\\t</tr>\\n\\t\\t\\t</table>\\n\\t\\t</td>\\n\\t\\t<td class=\\\"action-column\\\">\\n\\t\\t\\t<NcButton type=\\\"tertiary-no-background\\\"\\n\\t\\t\\t\\t:aria-label=\\\"t('oauth2', 'Delete')\\\"\\n\\t\\t\\t\\t@click=\\\"$emit('delete', id)\\\">\\n\\t\\t\\t\\t<template #icon>\\n\\t\\t\\t\\t\\t<Delete :size=\\\"20\\\"\\n\\t\\t\\t\\t\\t\\t:title=\\\"t('oauth2', 'Delete')\\\" />\\n\\t\\t\\t\\t</template>\\n\\t\\t\\t</NcButton>\\n\\t\\t</td>\\n\\t</tr>\\n</template>\\n\\n<script>\\n\\nimport Delete from 'vue-material-design-icons/Delete.vue'\\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js'\\n\\nexport default {\\n\\tname: 'OAuthItem',\\n\\tcomponents: {\\n\\t\\tDelete,\\n\\t\\tNcButton,\\n\\t},\\n\\tprops: {\\n\\t\\tclient: {\\n\\t\\t\\ttype: Object,\\n\\t\\t\\trequired: true,\\n\\t\\t},\\n\\t},\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\tid: this.client.id,\\n\\t\\t\\tname: this.client.name,\\n\\t\\t\\tredirectUri: this.client.redirectUri,\\n\\t\\t\\tclientId: this.client.clientId,\\n\\t\\t\\tclientSecret: this.client.clientSecret,\\n\\t\\t\\trenderSecret: false,\\n\\t\\t}\\n\\t},\\n\\tcomputed: {\\n\\t\\trenderedSecret() {\\n\\t\\t\\tif (this.renderSecret) {\\n\\t\\t\\t\\treturn this.clientSecret\\n\\t\\t\\t} else {\\n\\t\\t\\t\\treturn '****'\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n\\tmethods: {\\n\\t\\ttoggleSecret() {\\n\\t\\t\\tthis.renderSecret = !this.renderSecret\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n\\n<style scoped>\\n\\t.icon-toggle,\\n\\t.icon-delete {\\n\\t\\tdisplay: inline-block;\\n\\t\\twidth: 16px;\\n\\t\\theight: 16px;\\n\\t\\tpadding: 10px;\\n\\t\\tvertical-align: middle;\\n\\t}\\n\\ttd code {\\n\\t\\tdisplay: inline-block;\\n\\t\\tvertical-align: middle;\\n\\t}\\n\\ttable.inline td {\\n\\t\\tborder: none;\\n\\t\\tpadding: 5px;\\n\\t}\\n</style>\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = function() { return Promise.resolve(); };","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5053;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t5053: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(74874); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","Delete","NcButton","props","client","type","Object","required","data","id","redirectUri","clientId","clientSecret","renderSecret","computed","renderedSecret","methods","toggleSecret","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","_v","_s","t","attrs","on","$event","$emit","scopedSlots","_u","key","fn","proxy","OAuthItem","NcSettingsSection","NcTextField","clients","Array","newClient","errorMsg","error","oauthDocLink","loadState","instanceName","getCapabilities","theming","deleteClient","_this","axios","delete","generateUrl","then","response","filter","addClient","_this2","post","push","catch","reason","message","length","_l","_e","preventDefault","apply","arguments","$set","Vue","prototype","OC","extend","App","propsData","$mount","___CSS_LOADER_EXPORT___","module","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","e","Promise","resolve","g","globalThis","Function","window","obj","prop","hasOwnProperty","Symbol","toStringTag","value","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}
|