summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/settings-vue-settings-admin-delegation.js3
-rw-r--r--dist/settings-vue-settings-admin-delegation.js.LICENSE.txt21
-rw-r--r--dist/settings-vue-settings-admin-delegation.js.map1
-rw-r--r--webpack.modules.js1
4 files changed, 26 insertions, 0 deletions
diff --git a/dist/settings-vue-settings-admin-delegation.js b/dist/settings-vue-settings-admin-delegation.js
new file mode 100644
index 00000000000..74bf6f7fcf6
--- /dev/null
+++ b/dist/settings-vue-settings-admin-delegation.js
@@ -0,0 +1,3 @@
+/*! For license information please see settings-vue-settings-admin-delegation.js.LICENSE.txt */
+!function(){"use strict";var n,e={48713:function(n,e,r){var i=r(20144),o=r(7811),s=r.n(o),a=r(79753),u=r(4820),l=r(26932),c=(0,r(17499).getLoggerBuilder)().setApp("settings").detectUser().build();function d(n,t,e,r,i,o,s){try{var a=n[o](s),u=a.value}catch(n){return void e(n)}a.done?t(u):Promise.resolve(u).then(r,i)}var p={name:"GroupSelect",components:{Multiselect:s()},props:{availableGroups:{type:Array,default:function(){return[]}},setting:{type:Object,required:!0},authorizedGroups:{type:Array,required:!0}},data:function(){var n=this;return{selected:this.authorizedGroups.filter((function(t){return t.class===n.setting.class})).map((function(t){return n.availableGroups.find((function(n){return n.gid===t.group_id}))})).filter((function(n){return void 0!==n}))}},watch:{selected:function(){this.saveGroups()}},methods:{saveGroups:function(){var n,e=this;return(n=regeneratorRuntime.mark((function n(){var r;return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r={newGroups:e.selected,class:e.setting.class},n.prev=1,n.next=4,u.default.post((0,a.generateUrl)("/apps/settings/")+"/settings/authorizedgroups/saveSettings",r);case 4:n.next=10;break;case 6:n.prev=6,n.t0=n.catch(1),(0,l.x2)(t("settings","Unable to modify setting")),c.error("Unable to modify setting",n.t0);case 10:case"end":return n.stop()}}),n,null,[[1,6]])})),function(){var t=this,e=arguments;return new Promise((function(r,i){var o=n.apply(t,e);function s(n){d(o,r,i,s,a,"next",n)}function a(n){d(o,r,i,s,a,"throw",n)}s(void 0)}))})()}}},f=p,g=r(93379),v=r.n(g),h=r(7795),m=r.n(h),b=r(90569),y=r.n(b),w=r(3565),A=r.n(w),_=r(19216),O=r.n(_),x=r(44589),G=r.n(x),S=r(63288),C={};C.styleTagTransform=G(),C.setAttributes=A(),C.insert=y().bind(null,"head"),C.domAPI=m(),C.insertStyleElement=O(),v()(S.Z,C),S.Z&&S.Z.locals&&S.Z.locals;var k=r(51900),j=(0,k.Z)(f,(function(){var n=this,t=n.$createElement;return(n._self._c||t)("Multiselect",{staticClass:"group-multiselect",attrs:{placeholder:n.t("settings","None"),"track-by":"gid",label:"displayName",options:n.availableGroups,"open-direction":"bottom",multiple:!0,"allow-empty":!0},model:{value:n.selected,callback:function(t){n.selected=t},expression:"selected"}})}),[],!1,null,null,null).exports,z=r(16453),P={name:"AdminDelegating",components:{GroupSelect:j},data:function(){return{availableSettings:(0,z.loadState)("settings","available-settings"),availableGroups:(0,z.loadState)("settings","available-groups"),authorizedGroups:(0,z.loadState)("settings","authorized-groups")}}},Z=(0,k.Z)(P,(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("div",{staticClass:"section",attrs:{id:"admin-right-sub-granting"}},[e("h2",[n._v(n._s(n.t("settings","Administration privileges")))]),n._v(" "),e("p",{staticClass:"settings-hint"},[n._v("\n\t\t"+n._s(n.t("settings","Here you can decide which group can access certain sections of the administration settings."))+"\n\t")]),n._v(" "),e("div",{staticClass:"setting-list"},n._l(n.availableSettings,(function(t){return e("div",{key:t.class},[e("h3",[n._v(n._s(t.sectionName))]),n._v(" "),e("GroupSelect",{attrs:{"available-groups":n.availableGroups,"authorized-groups":n.authorizedGroups,setting:t}})],1)})),0)])}),[],!1,null,null,null).exports;i.default.prototype.OC=OC,i.default.prototype.t=t,(new(i.default.extend(Z))).$mount("#admin-right-sub-granting")},63288:function(n,t,e){var r=e(94015),i=e.n(r),o=e(23645),s=e.n(o)()(i());s.push([n.id,".group-multiselect{width:100%;margin-right:0}","",{version:3,sources:["webpack://./apps/settings/src/components/AdminDelegation/GroupSelect.vue"],names:[],mappings:"AAqEA,mBACC,UAAA,CACA,cAAA",sourcesContent:["\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.group-multiselect {\n\twidth: 100%;\n\tmargin-right: 0;\n}\n"],sourceRoot:""}]),t.Z=s}},r={};function i(n){var t=r[n];if(void 0!==t)return t.exports;var o=r[n]={id:n,loaded:!1,exports:{}};return e[n].call(o.exports,o,o.exports,i),o.loaded=!0,o.exports}i.m=e,i.amdD=function(){throw new Error("define cannot be used indirect")},i.amdO={},n=[],i.O=function(t,e,r,o){if(!e){var s=1/0;for(c=0;c<n.length;c++){e=n[c][0],r=n[c][1],o=n[c][2];for(var a=!0,u=0;u<e.length;u++)(!1&o||s>=o)&&Object.keys(i.O).every((function(n){return i.O[n](e[u])}))?e.splice(u--,1):(a=!1,o<s&&(s=o));if(a){n.splice(c--,1);var l=r();void 0!==l&&(t=l)}}return t}o=o||0;for(var c=n.length;c>0&&n[c-1][2]>o;c--)n[c]=n[c-1];n[c]=[e,r,o]},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,{a:t}),t},i.d=function(n,t){for(var e in t)i.o(t,e)&&!i.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(n){if("object"==typeof window)return window}}(),i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.nmd=function(n){return n.paths=[],n.children||(n.children=[]),n},i.j=638,function(){var n={638:0};i.O.j=function(t){return 0===n[t]};var t=function(t,e){var r,o,s=e[0],a=e[1],u=e[2],l=0;if(s.some((function(t){return 0!==n[t]}))){for(r in a)i.o(a,r)&&(i.m[r]=a[r]);if(u)var c=u(i)}for(t&&t(e);l<s.length;l++)o=s[l],i.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return i.O(c)},e=self.webpackChunknextcloud=self.webpackChunknextcloud||[];e.forEach(t.bind(null,0)),e.push=t.bind(null,e.push.bind(e))}();var o=i.O(void 0,[874],(function(){return i(48713)}));o=i.O(o)}();
+//# sourceMappingURL=settings-vue-settings-admin-delegation.js.map?v=545cfda99536fed02ff7 \ No newline at end of file
diff --git a/dist/settings-vue-settings-admin-delegation.js.LICENSE.txt b/dist/settings-vue-settings-admin-delegation.js.LICENSE.txt
new file mode 100644
index 00000000000..90315b0da5d
--- /dev/null
+++ b/dist/settings-vue-settings-admin-delegation.js.LICENSE.txt
@@ -0,0 +1,21 @@
+/**
+ * @copyright Copyright (c) 2021 Carl Schwan <carl@carlschwan.eu>
+ *
+ * @author Carl Schwan <carl@carlschwan.eu>
+ *
+ * @license AGPL-3.0-or-later
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
diff --git a/dist/settings-vue-settings-admin-delegation.js.map b/dist/settings-vue-settings-admin-delegation.js.map
new file mode 100644
index 00000000000..a7af218aa6e
--- /dev/null
+++ b/dist/settings-vue-settings-admin-delegation.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"settings-vue-settings-admin-delegation.js?v=545cfda99536fed02ff7","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/settings/src/logger.js","webpack:///nextcloud/apps/settings/src/components/AdminDelegation/GroupSelect.vue","webpack:///nextcloud/apps/settings/src/components/AdminDelegation/GroupSelect.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/settings/src/components/AdminDelegation/GroupSelect.vue?4c86","webpack://nextcloud/./apps/settings/src/components/AdminDelegation/GroupSelect.vue?b891","webpack:///nextcloud/apps/settings/src/components/AdminDelegation/GroupSelect.vue?vue&type=template&id=50ff2164&","webpack:///nextcloud/apps/settings/src/components/AdminDelegating.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/settings/src/components/AdminDelegating.vue","webpack://nextcloud/./apps/settings/src/components/AdminDelegating.vue?fc9d","webpack:///nextcloud/apps/settings/src/components/AdminDelegating.vue?vue&type=template&id=ae9ce460&","webpack:///nextcloud/apps/settings/src/main-admin-delegation.js","webpack:///nextcloud/apps/settings/src/components/AdminDelegation/GroupSelect.vue?vue&type=style&index=0&lang=scss&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","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/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};","/**\n * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\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 { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('settings')\n\t.detectUser()\n\t.build()\n","<template>\n\t<Multiselect v-model=\"selected\"\n\t\tclass=\"group-multiselect\"\n\t\t:placeholder=\"t('settings', 'None')\"\n\t\ttrack-by=\"gid\"\n\t\tlabel=\"displayName\"\n\t\t:options=\"availableGroups\"\n\t\topen-direction=\"bottom\"\n\t\t:multiple=\"true\"\n\t\t:allow-empty=\"true\" />\n</template>\n\n<script>\nimport Multiselect from '@nextcloud/vue/dist/Components/Multiselect'\nimport { generateUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport logger from '../../logger'\n\nexport default {\n\tname: 'GroupSelect',\n\tcomponents: {\n\t\tMultiselect,\n\t},\n\tprops: {\n\t\tavailableGroups: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tsetting: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tauthorizedGroups: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselected: this.authorizedGroups\n\t\t\t\t.filter((group) => group.class === this.setting.class)\n\t\t\t\t.map((groupToMap) => this.availableGroups.find((group) => group.gid === groupToMap.group_id))\n\t\t\t\t.filter((group) => group !== undefined),\n\t\t}\n\t},\n\twatch: {\n\t\tselected() {\n\t\t\tthis.saveGroups()\n\t\t},\n\t},\n\tmethods: {\n\t\tasync saveGroups() {\n\t\t\tconst data = {\n\t\t\t\tnewGroups: this.selected,\n\t\t\t\tclass: this.setting.class,\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tawait axios.post(generateUrl('/apps/settings/') + '/settings/authorizedgroups/saveSettings', data)\n\t\t\t} catch (e) {\n\t\t\t\tshowError(t('settings', 'Unable to modify setting'))\n\t\t\t\tlogger.error('Unable to modify setting', e)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.group-multiselect {\n\twidth: 100%;\n\tmargin-right: 0;\n}\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupSelect.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!./GroupSelect.vue?vue&type=script&lang=js&\"","\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupSelect.vue?vue&type=style&index=0&lang=scss&\";\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/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupSelect.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupSelect.vue?vue&type=template&id=50ff2164&\"\nimport script from \"./GroupSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./GroupSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GroupSelect.vue?vue&type=style&index=0&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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Multiselect',{staticClass:\"group-multiselect\",attrs:{\"placeholder\":_vm.t('settings', 'None'),\"track-by\":\"gid\",\"label\":\"displayName\",\"options\":_vm.availableGroups,\"open-direction\":\"bottom\",\"multiple\":true,\"allow-empty\":true},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})}\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!./AdminDelegating.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!./AdminDelegating.vue?vue&type=script&lang=js&\"","<template>\n\t<div id=\"admin-right-sub-granting\" class=\"section\">\n\t\t<h2>{{ t('settings', 'Administration privileges') }}</h2>\n\t\t<p class=\"settings-hint\">\n\t\t\t{{ t('settings', 'Here you can decide which group can access certain sections of the administration settings.') }}\n\t\t</p>\n\n\t\t<div class=\"setting-list\">\n\t\t\t<div v-for=\"setting in availableSettings\" :key=\"setting.class\">\n\t\t\t\t<h3>{{ setting.sectionName }}</h3>\n\t\t\t\t<GroupSelect :available-groups=\"availableGroups\" :authorized-groups=\"authorizedGroups\" :setting=\"setting\" />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport GroupSelect from './AdminDelegation/GroupSelect'\nimport { loadState } from '@nextcloud/initial-state'\n\nexport default {\n\tname: 'AdminDelegating',\n\tcomponents: {\n\t\tGroupSelect,\n\t},\n\tdata() {\n\t\tconst availableSettings = loadState('settings', 'available-settings')\n\t\tconst availableGroups = loadState('settings', 'available-groups')\n\t\tconst authorizedGroups = loadState('settings', 'authorized-groups')\n\t\treturn {\n\t\t\tavailableSettings,\n\t\t\tavailableGroups,\n\t\t\tauthorizedGroups,\n\t\t}\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./AdminDelegating.vue?vue&type=template&id=ae9ce460&\"\nimport script from \"./AdminDelegating.vue?vue&type=script&lang=js&\"\nexport * from \"./AdminDelegating.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('div',{staticClass:\"section\",attrs:{\"id\":\"admin-right-sub-granting\"}},[_c('h2',[_vm._v(_vm._s(_vm.t('settings', 'Administration privileges')))]),_vm._v(\" \"),_c('p',{staticClass:\"settings-hint\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Here you can decide which group can access certain sections of the administration settings.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"setting-list\"},_vm._l((_vm.availableSettings),function(setting){return _c('div',{key:setting.class},[_c('h3',[_vm._v(_vm._s(setting.sectionName))]),_vm._v(\" \"),_c('GroupSelect',{attrs:{\"available-groups\":_vm.availableGroups,\"authorized-groups\":_vm.authorizedGroups,\"setting\":setting}})],1)}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2021 Carl Schwan <carl@carlschwan.eu>\n *\n * @author Carl Schwan <carl@carlschwan.eu>\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 './components/AdminDelegating.vue'\n\n// bind to window\nVue.prototype.OC = OC\nVue.prototype.t = t\n\nconst View = Vue.extend(App)\nconst accessibility = new View()\naccessibility.$mount('#admin-right-sub-granting')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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, \".group-multiselect{width:100%;margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/AdminDelegation/GroupSelect.vue\"],\"names\":[],\"mappings\":\"AAqEA,mBACC,UAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.group-multiselect {\\n\\twidth: 100%;\\n\\tmargin-right: 0;\\n}\\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","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// 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};","__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 = 638;","// no baseURI\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\t638: 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));","// 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, [874], function() { return __webpack_require__(48713); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","getLoggerBuilder","setApp","detectUser","build","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_self","_c","staticClass","attrs","t","availableGroups","model","value","callback","$$v","selected","expression","_v","_s","_l","setting","key","class","sectionName","authorizedGroups","Vue","OC","App","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/webpack.modules.js b/webpack.modules.js
index 9fdef9d570b..cfa2ec31914 100644
--- a/webpack.modules.js
+++ b/webpack.modules.js
@@ -73,6 +73,7 @@ module.exports = {
settings: {
'vue-settings-apps-users-management': path.join(__dirname, 'apps/settings/src', 'main-apps-users-management.js'),
'vue-settings-admin-security': path.join(__dirname, 'apps/settings/src', 'main-admin-security.js'),
+ 'vue-settings-admin-delegation': path.join(__dirname, 'apps/settings/src', 'main-admin-delegation.js'),
'vue-settings-personal-security': path.join(__dirname, 'apps/settings/src', 'main-personal-security.js'),
'vue-settings-personal-webauthn': path.join(__dirname, 'apps/settings/src', 'main-personal-webauth.js'),
'vue-settings-nextcloud-pdf': path.join(__dirname, 'apps/settings/src', 'main-nextcloud-pdf.js'),