aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2025-03-21 17:41:18 +0100
committerGitHub <noreply@github.com>2025-03-21 17:41:18 +0100
commite3aacbb4ca2f40435f4676b5225debc714d89f5c (patch)
tree27ea7bb8fb63a1d1b0ca3adb5045470f5cb1cf43
parent3d38a4bddeb8d002269b965ac2f4cc2bc06492f5 (diff)
parentb22358fabcf24fe8c158afe7ff9680700811b8d9 (diff)
downloadnextcloud-server-e3aacbb4ca2f40435f4676b5225debc714d89f5c.tar.gz
nextcloud-server-e3aacbb4ca2f40435f4676b5225debc714d89f5c.zip
Merge pull request #51352 from nextcloud/fix/lookup-server-connector
fix(federatedfilesharing): warn when enabling lookup server data upload
-rw-r--r--apps/federatedfilesharing/src/components/AdminSettings.vue78
-rw-r--r--dist/federatedfilesharing-vue-settings-admin.js4
-rw-r--r--dist/federatedfilesharing-vue-settings-admin.js.map2
3 files changed, 76 insertions, 8 deletions
diff --git a/apps/federatedfilesharing/src/components/AdminSettings.vue b/apps/federatedfilesharing/src/components/AdminSettings.vue
index 9f565aea3f6..22031aa27a3 100644
--- a/apps/federatedfilesharing/src/components/AdminSettings.vue
+++ b/apps/federatedfilesharing/src/components/AdminSettings.vue
@@ -36,16 +36,16 @@
<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>
<NcCheckboxRadioSwitch type="switch"
- :checked.sync="lookupServerEnabled"
+ :checked="lookupServerEnabled"
disabled
- @update:checked="update('lookupServerEnabled', lookupServerEnabled)">
+ @update:checked="showLookupServerConfirmation">
{{ t('federatedfilesharing', 'Search global and public address book for people') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch type="switch"
- :checked.sync="lookupServerUploadEnabled"
+ :checked="lookupServerUploadEnabled"
disabled
- @update:checked="update('lookupServerUploadEnabled', lookupServerUploadEnabled)">
+ @update:checked="showLookupServerUploadConfirmation">
{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}
</NcCheckboxRadioSwitch>
</fieldset>
@@ -66,7 +66,7 @@
<script>
import { loadState } from '@nextcloud/initial-state'
-import { showError } from '@nextcloud/dialogs'
+import { DialogBuilder, DialogSeverity, showError } from '@nextcloud/dialogs'
import { generateOcsUrl } from '@nextcloud/router'
import { confirmPassword } from '@nextcloud/password-confirmation'
import axios from '@nextcloud/axios'
@@ -98,6 +98,74 @@ export default {
}
},
methods: {
+ setLookupServerUploadEnabled(state) {
+ if (state === this.lookupServerUploadEnabled) {
+ return
+ }
+ this.lookupServerUploadEnabled = state
+ this.update('lookupServerUploadEnabled', state)
+ },
+
+ async showLookupServerUploadConfirmation(state) {
+ // No confirmation needed for disabling
+ if (state === false) {
+ return this.setLookupServerUploadEnabled(false)
+ }
+
+ const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))
+ await dialog
+ .setSeverity(DialogSeverity.Warning)
+ .setText(
+ t('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),
+ )
+ .addButton({
+ callback: () => this.setLookupServerUploadEnabled(false),
+ label: t('federatedfilesharing', 'Disable upload'),
+ })
+ .addButton({
+ callback: () => this.setLookupServerUploadEnabled(true),
+ label: t('federatedfilesharing', 'Enable data upload'),
+ type: 'error',
+ })
+ .build()
+ .show()
+ },
+
+ setLookupServerEnabled(state) {
+ if (state === this.lookupServerEnabled) {
+ return
+ }
+ this.lookupServerEnabled = state
+ this.update('lookupServerEnabled', state)
+ },
+
+ async showLookupServerConfirmation(state) {
+ // No confirmation needed for disabling
+ if (state === false) {
+ return this.setLookupServerEnabled(false)
+ }
+
+ const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))
+ await dialog
+ .setSeverity(DialogSeverity.Warning)
+ .setText(
+ t('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')
+ + t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')
+ + t('federatedfilesharing', 'Moreover email addresses of users might be sent to that system in order to verify it.'),
+ )
+ .addButton({
+ callback: () => this.setLookupServerEnabled(false),
+ label: t('federatedfilesharing', 'Disable querying'),
+ })
+ .addButton({
+ callback: () => this.setLookupServerEnabled(true),
+ label: t('federatedfilesharing', 'Enable querying'),
+ type: 'error',
+ })
+ .build()
+ .show()
+ },
+
async update(key, value) {
await confirmPassword()
diff --git a/dist/federatedfilesharing-vue-settings-admin.js b/dist/federatedfilesharing-vue-settings-admin.js
index bf391ad3282..b3de85a36b2 100644
--- a/dist/federatedfilesharing-vue-settings-admin.js
+++ b/dist/federatedfilesharing-vue-settings-admin.js
@@ -1,2 +1,2 @@
-(()=>{"use strict";var e,r,n,a={70975:(e,r,n)=>{var a=n(85471),o=n(21777),s=n(53334),i=n(32981),d=n(85168),c=n(63814),l=n(56760),h=n(65043),p=n(32073),u=n(88837);n(51257);const f={name:"AdminSettings",components:{NcCheckboxRadioSwitch:p.A,NcSettingsSection:u.A},data:()=>({outgoingServer2serverShareEnabled:(0,i.C)("federatedfilesharing","outgoingServer2serverShareEnabled"),incomingServer2serverShareEnabled:(0,i.C)("federatedfilesharing","incomingServer2serverShareEnabled"),outgoingServer2serverGroupShareEnabled:(0,i.C)("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),incomingServer2serverGroupShareEnabled:(0,i.C)("federatedfilesharing","incomingServer2serverGroupShareEnabled"),federatedGroupSharingSupported:(0,i.C)("federatedfilesharing","federatedGroupSharingSupported"),lookupServerEnabled:(0,i.C)("federatedfilesharing","lookupServerEnabled"),lookupServerUploadEnabled:(0,i.C)("federatedfilesharing","lookupServerUploadEnabled"),federatedTrustedShareAutoAccept:(0,i.C)("federatedfilesharing","federatedTrustedShareAutoAccept"),internalOnly:(0,i.C)("federatedfilesharing","internalOnly"),sharingFederatedDocUrl:(0,i.C)("federatedfilesharing","sharingFederatedDocUrl")}),methods:{async update(e,r){await(0,l.C5)();const n=(0,c.KT)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:e}),a=r?"yes":"no";try{const{data:e}=await h.Ay.post(n,{value:a});this.handleResponse({status:e.ocs?.meta?.status})}catch(e){this.handleResponse({errorMessage:t("federatedfilesharing","Unable to update federated files sharing config"),error:e})}},async handleResponse(e){let{status:t,errorMessage:r,error:n}=e;"ok"!==t&&((0,d.Qg)(r),console.error(r,n))}}};var g=n(85072),v=n.n(g),S=n(97825),b=n.n(S),m=n(77659),A=n.n(m),k=n(55056),w=n.n(k),y=n(10540),_=n.n(y),E=n(41113),C=n.n(E),x=n(54136),N={};N.styleTagTransform=C(),N.setAttributes=w(),N.insert=A().bind(null,"head"),N.domAPI=b(),N.insertStyleElement=_(),v()(x.A,N),x.A&&x.A.locals&&x.A.locals;const R=(0,n(14486).A)(f,(function(){var e=this,t=e._self._c;return t("NcSettingsSection",{attrs:{name:e.t("federatedfilesharing","Federated Cloud Sharing"),description:e.t("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),"doc-url":e.sharingFederatedDocUrl}},[t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverShareEnabled},on:{"update:checked":[function(t){e.outgoingServer2serverShareEnabled=t},function(t){return e.update("outgoing_server2server_share_enabled",e.outgoingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)"))+"\n\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverShareEnabled},on:{"update:checked":[function(t){e.incomingServer2serverShareEnabled=t},function(t){return e.update("incoming_server2server_share_enabled",e.incomingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to receive shares from other servers"))+"\n\t")]),e._v(" "),e.federatedGroupSharingSupported?t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverGroupShareEnabled},on:{"update:checked":[function(t){e.outgoingServer2serverGroupShareEnabled=t},function(t){return e.update("outgoing_server2server_group_share_enabled",e.outgoingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to send shares to groups on other servers"))+"\n\t")]):e._e(),e._v(" "),e.federatedGroupSharingSupported?t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverGroupShareEnabled},on:{"update:checked":[function(t){e.incomingServer2serverGroupShareEnabled=t},function(t){return e.update("incoming_server2server_group_share_enabled",e.incomingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to receive group shares from other servers"))+"\n\t")]):e._e(),e._v(" "),t("fieldset",[t("legend",[e._v(e._s(e.t("federatedfilesharing","The lookup server is only available for global scale.")))]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerEnabled,disabled:""},on:{"update:checked":[function(t){e.lookupServerEnabled=t},function(t){return e.update("lookupServerEnabled",e.lookupServerEnabled)}]}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Search global and public address book for people"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerUploadEnabled,disabled:""},on:{"update:checked":[function(t){e.lookupServerUploadEnabled=t},function(t){return e.update("lookupServerUploadEnabled",e.lookupServerUploadEnabled)}]}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Allow people to publish their data to a global and public address book"))+"\n\t\t")])],1),e._v(" "),t("div",{staticClass:"settings-subsection"},[t("h3",{staticClass:"settings-subsection__name"},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Trusted federation"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.federatedTrustedShareAutoAccept},on:{"update:checked":[function(t){e.federatedTrustedShareAutoAccept=t},function(t){return e.update("federatedTrustedShareAutoAccept",e.federatedTrustedShareAutoAccept)}]}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default"))+"\n\t\t")])],1)],1)}),[],!1,null,"56f0899f",null).exports;n.nc=(0,o.aV)(),a.Ay.mixin({methods:{t:s.Tl}}),(0,i.C)("federatedfilesharing","internalOnly",!1)||(new(a.Ay.extend(R))).$mount("#vue-admin-federated")},54136:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(71354),a=r.n(n),o=r(76314),s=r.n(o)()(a());s.push([e.id,"\n.settings-subsection[data-v-56f0899f] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-56f0899f] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n","",{version:3,sources:["webpack://./apps/federatedfilesharing/src/components/AdminSettings.vue"],names:[],mappings:";AAqIA;CACA,gBAAA;AACA;AAEA;CACA,oBAAA;CACA,mBAAA;CACA,uBAAA;CACA,eAAA;CACA,iBAAA;CACA,gBAAA;CACA,aAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n<template>\n\t<NcSettingsSection :name=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<fieldset>\n\t\t\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\n\t\t\x3c!-- Trusted server handling --\x3e\n\t\t<div class=\"settings-subsection\">\n\t\t\t<h3 class=\"settings-subsection__name\">\n\t\t\t\t{{ t('federatedfilesharing', 'Trusted federation') }}\n\t\t\t</h3>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"federatedTrustedShareAutoAccept\"\n\t\t\t\t@update:checked=\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\n\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n.settings-subsection {\n\tmargin-top: 20px;\n}\n\n.settings-subsection__name {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n</style>\n"],sourceRoot:""}]);const i=s}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.m=a,e=[],s.O=(t,r,n,a)=>{if(!r){var o=1/0;for(l=0;l<e.length;l++){r=e[l][0],n=e[l][1],a=e[l][2];for(var i=!0,d=0;d<r.length;d++)(!1&a||o>=a)&&Object.keys(s.O).every((e=>s.O[e](r[d])))?r.splice(d--,1):(i=!1,a<o&&(o=a));if(i){e.splice(l--,1);var c=n();void 0!==c&&(t=c)}}return t}a=a||0;for(var l=e.length;l>0&&e[l-1][2]>a;l--)e[l]=e[l-1];e[l]=[r,n,a]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce(((t,r)=>(s.f[r](e,t),t)),[])),s.u=e=>e+"-"+e+".js?v="+{2441:"44b85e4901c485417f88",5862:"142cd48ca8ec32e57725",6146:"5f2015343db7411125d5",8289:"8f098190dce9305dab1e"}[e],s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},n="nextcloud:",s.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var i,d;if(void 0!==a)for(var c=document.getElementsByTagName("script"),l=0;l<c.length;l++){var h=c[l];if(h.getAttribute("src")==e||h.getAttribute("data-webpack")==n+a){i=h;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack",n+a),i.src=e),r[e]=[t];var p=(t,n)=>{i.onerror=i.onload=null,clearTimeout(u);var a=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((e=>e(n))),t)return t(n)},u=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),d&&document.head.appendChild(i)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=5098,(()=>{var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b=document.baseURI||self.location.href;var e={5098:0};s.f.j=(t,r)=>{var n=s.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=s.p+s.u(t),i=new Error;s.l(o,(r=>{if(s.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,n[1](i)}}),"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,o=r[0],i=r[1],d=r[2],c=0;if(o.some((t=>0!==e[t]))){for(n in i)s.o(i,n)&&(s.m[n]=i[n]);if(d)var l=d(s)}for(t&&t(r);c<o.length;c++)a=o[c],s.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return s.O(l)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),s.nc=void 0;var i=s.O(void 0,[4208],(()=>s(70975)));i=s.O(i)})();
-//# sourceMappingURL=federatedfilesharing-vue-settings-admin.js.map?v=3c97caa61f79b9db2c43 \ No newline at end of file
+(()=>{"use strict";var e,r,n,a={54445:(e,r,n)=>{var a=n(85471),o=n(21777),i=n(53334),s=n(32981),d=n(85168),l=n(63814),c=n(56760),h=n(65043),u=n(32073),p=n(88837);n(51257);const f={name:"AdminSettings",components:{NcCheckboxRadioSwitch:u.A,NcSettingsSection:p.A},data:()=>({outgoingServer2serverShareEnabled:(0,s.C)("federatedfilesharing","outgoingServer2serverShareEnabled"),incomingServer2serverShareEnabled:(0,s.C)("federatedfilesharing","incomingServer2serverShareEnabled"),outgoingServer2serverGroupShareEnabled:(0,s.C)("federatedfilesharing","outgoingServer2serverGroupShareEnabled"),incomingServer2serverGroupShareEnabled:(0,s.C)("federatedfilesharing","incomingServer2serverGroupShareEnabled"),federatedGroupSharingSupported:(0,s.C)("federatedfilesharing","federatedGroupSharingSupported"),lookupServerEnabled:(0,s.C)("federatedfilesharing","lookupServerEnabled"),lookupServerUploadEnabled:(0,s.C)("federatedfilesharing","lookupServerUploadEnabled"),federatedTrustedShareAutoAccept:(0,s.C)("federatedfilesharing","federatedTrustedShareAutoAccept"),internalOnly:(0,s.C)("federatedfilesharing","internalOnly"),sharingFederatedDocUrl:(0,s.C)("federatedfilesharing","sharingFederatedDocUrl")}),methods:{setLookupServerUploadEnabled(e){e!==this.lookupServerUploadEnabled&&(this.lookupServerUploadEnabled=e,this.update("lookupServerUploadEnabled",e))},async showLookupServerUploadConfirmation(e){if(!1===e)return this.setLookupServerUploadEnabled(!1);const r=new d.ik(t("federatedfilesharing","Confirm data upload to lookup server"));await r.setSeverity(d.aR.Warning).setText(t("federatedfilesharing",'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.')).addButton({callback:()=>this.setLookupServerUploadEnabled(!1),label:t("federatedfilesharing","Disable upload")}).addButton({callback:()=>this.setLookupServerUploadEnabled(!0),label:t("federatedfilesharing","Enable data upload"),type:"error"}).build().show()},setLookupServerEnabled(e){e!==this.lookupServerEnabled&&(this.lookupServerEnabled=e,this.update("lookupServerEnabled",e))},async showLookupServerConfirmation(e){if(!1===e)return this.setLookupServerEnabled(!1);const r=new d.ik(t("federatedfilesharing","Confirm querying lookup server"));await r.setSeverity(d.aR.Warning).setText(t("federatedfilesharing","When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.")+t("federatedfilesharing","This is used to retrieve the federated cloud ID to make federated sharing easier.")+t("federatedfilesharing","Moreover email addresses of users might be sent to that system in order to verify it.")).addButton({callback:()=>this.setLookupServerEnabled(!1),label:t("federatedfilesharing","Disable querying")}).addButton({callback:()=>this.setLookupServerEnabled(!0),label:t("federatedfilesharing","Enable querying"),type:"error"}).build().show()},async update(e,r){await(0,c.C5)();const n=(0,l.KT)("/apps/provisioning_api/api/v1/config/apps/{appId}/{key}",{appId:"files_sharing",key:e}),a=r?"yes":"no";try{const{data:e}=await h.Ay.post(n,{value:a});this.handleResponse({status:e.ocs?.meta?.status})}catch(e){this.handleResponse({errorMessage:t("federatedfilesharing","Unable to update federated files sharing config"),error:e})}},async handleResponse(e){let{status:t,errorMessage:r,error:n}=e;"ok"!==t&&((0,d.Qg)(r),console.error(r,n))}}};var g=n(85072),v=n.n(g),b=n(97825),S=n.n(b),m=n(77659),k=n.n(m),w=n(55056),y=n.n(w),A=n(10540),E=n.n(A),C=n(41113),_=n.n(C),x=n(85149),N={};N.styleTagTransform=_(),N.setAttributes=y(),N.insert=k().bind(null,"head"),N.domAPI=S(),N.insertStyleElement=E(),v()(x.A,N),x.A&&x.A.locals&&x.A.locals;const T=(0,n(14486).A)(f,(function(){var e=this,t=e._self._c;return t("NcSettingsSection",{attrs:{name:e.t("federatedfilesharing","Federated Cloud Sharing"),description:e.t("federatedfilesharing","Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing."),"doc-url":e.sharingFederatedDocUrl}},[t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverShareEnabled},on:{"update:checked":[function(t){e.outgoingServer2serverShareEnabled=t},function(t){return e.update("outgoing_server2server_share_enabled",e.outgoingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)"))+"\n\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverShareEnabled},on:{"update:checked":[function(t){e.incomingServer2serverShareEnabled=t},function(t){return e.update("incoming_server2server_share_enabled",e.incomingServer2serverShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to receive shares from other servers"))+"\n\t")]),e._v(" "),e.federatedGroupSharingSupported?t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.outgoingServer2serverGroupShareEnabled},on:{"update:checked":[function(t){e.outgoingServer2serverGroupShareEnabled=t},function(t){return e.update("outgoing_server2server_group_share_enabled",e.outgoingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to send shares to groups on other servers"))+"\n\t")]):e._e(),e._v(" "),e.federatedGroupSharingSupported?t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.incomingServer2serverGroupShareEnabled},on:{"update:checked":[function(t){e.incomingServer2serverGroupShareEnabled=t},function(t){return e.update("incoming_server2server_group_share_enabled",e.incomingServer2serverGroupShareEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people on this server to receive group shares from other servers"))+"\n\t")]):e._e(),e._v(" "),t("fieldset",[t("legend",[e._v(e._s(e.t("federatedfilesharing","The lookup server is only available for global scale.")))]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerEnabled,disabled:""},on:{"update:checked":e.showLookupServerConfirmation}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Search global and public address book for people"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerUploadEnabled,disabled:""},on:{"update:checked":e.showLookupServerUploadConfirmation}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Allow people to publish their data to a global and public address book"))+"\n\t\t")])],1),e._v(" "),t("div",{staticClass:"settings-subsection"},[t("h3",{staticClass:"settings-subsection__name"},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Trusted federation"))+"\n\t\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.federatedTrustedShareAutoAccept},on:{"update:checked":[function(t){e.federatedTrustedShareAutoAccept=t},function(t){return e.update("federatedTrustedShareAutoAccept",e.federatedTrustedShareAutoAccept)}]}},[e._v("\n\t\t\t"+e._s(e.t("federatedfilesharing","Automatically accept shares from trusted federated accounts and groups by default"))+"\n\t\t")])],1)],1)}),[],!1,null,"a053a914",null).exports;n.nc=(0,o.aV)(),a.Ay.mixin({methods:{t:i.Tl}}),(0,s.C)("federatedfilesharing","internalOnly",!1)||(new(a.Ay.extend(T))).$mount("#vue-admin-federated")},85149:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(71354),a=r.n(n),o=r(76314),i=r.n(o)()(a());i.push([e.id,"\n.settings-subsection[data-v-a053a914] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-a053a914] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n","",{version:3,sources:["webpack://./apps/federatedfilesharing/src/components/AdminSettings.vue"],names:[],mappings:";AAyMA;CACA,gBAAA;AACA;AAEA;CACA,oBAAA;CACA,mBAAA;CACA,uBAAA;CACA,eAAA;CACA,iBAAA;CACA,gBAAA;CACA,aAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n<template>\n\t<NcSettingsSection :name=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<fieldset>\n\t\t\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"lookupServerEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"showLookupServerConfirmation\">\n\t\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"lookupServerUploadEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"showLookupServerUploadConfirmation\">\n\t\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\n\t\t\x3c!-- Trusted server handling --\x3e\n\t\t<div class=\"settings-subsection\">\n\t\t\t<h3 class=\"settings-subsection__name\">\n\t\t\t\t{{ t('federatedfilesharing', 'Trusted federation') }}\n\t\t\t</h3>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"federatedTrustedShareAutoAccept\"\n\t\t\t\t@update:checked=\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { DialogBuilder, DialogSeverity, showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\n\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tsetLookupServerUploadEnabled(state) {\n\t\t\tif (state === this.lookupServerUploadEnabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lookupServerUploadEnabled = state\n\t\t\tthis.update('lookupServerUploadEnabled', state)\n\t\t},\n\n\t\tasync showLookupServerUploadConfirmation(state) {\n\t\t\t// No confirmation needed for disabling\n\t\t\tif (state === false) {\n\t\t\t\treturn this.setLookupServerUploadEnabled(false)\n\t\t\t}\n\n\t\t\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))\n\t\t\tawait dialog\n\t\t\t\t.setSeverity(DialogSeverity.Warning)\n\t\t\t\t.setText(\n\t\t\t\t\tt('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),\n\t\t\t\t)\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerUploadEnabled(false),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Disable upload'),\n\t\t\t\t})\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerUploadEnabled(true),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Enable data upload'),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\t\t.show()\n\t\t},\n\n\t\tsetLookupServerEnabled(state) {\n\t\t\tif (state === this.lookupServerEnabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lookupServerEnabled = state\n\t\t\tthis.update('lookupServerEnabled', state)\n\t\t},\n\n\t\tasync showLookupServerConfirmation(state) {\n\t\t\t// No confirmation needed for disabling\n\t\t\tif (state === false) {\n\t\t\t\treturn this.setLookupServerEnabled(false)\n\t\t\t}\n\n\t\t\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))\n\t\t\tawait dialog\n\t\t\t\t.setSeverity(DialogSeverity.Warning)\n\t\t\t\t.setText(\n\t\t\t\t\tt('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')\n\t\t\t\t\t+ t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')\n\t\t\t\t\t+ t('federatedfilesharing', 'Moreover email addresses of users might be sent to that system in order to verify it.'),\n\t\t\t\t)\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerEnabled(false),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Disable querying'),\n\t\t\t\t})\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerEnabled(true),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Enable querying'),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\t\t.show()\n\t\t},\n\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n<\/script>\n<style scoped>\n.settings-subsection {\n\tmargin-top: 20px;\n}\n\n.settings-subsection__name {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n</style>\n"],sourceRoot:""}]);const s=i}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=a,e=[],i.O=(t,r,n,a)=>{if(!r){var o=1/0;for(c=0;c<e.length;c++){r=e[c][0],n=e[c][1],a=e[c][2];for(var s=!0,d=0;d<r.length;d++)(!1&a||o>=a)&&Object.keys(i.O).every((e=>i.O[e](r[d])))?r.splice(d--,1):(s=!1,a<o&&(o=a));if(s){e.splice(c--,1);var l=n();void 0!==l&&(t=l)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,n,a]},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>e+"-"+e+".js?v="+{2441:"44b85e4901c485417f88",5862:"142cd48ca8ec32e57725",6146:"5f2015343db7411125d5",8289:"8f098190dce9305dab1e"}[e],i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},n="nextcloud:",i.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var s,d;if(void 0!==a)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var h=l[c];if(h.getAttribute("src")==e||h.getAttribute("data-webpack")==n+a){s=h;break}}s||(d=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",n+a),s.src=e),r[e]=[t];var u=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var a=r[e];if(delete r[e],s.parentNode&&s.parentNode.removeChild(s),a&&a.forEach((e=>e(n))),t)return t(n)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=u.bind(null,s.onerror),s.onload=u.bind(null,s.onload),d&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.j=5098,(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var t=i.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=r[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{i.b=document.baseURI||self.location.href;var e={5098:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var a=new Promise(((r,a)=>n=e[t]=[r,a]));r.push(n[2]=a);var o=i.p+i.u(t),s=new Error;i.l(o,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",s.name="ChunkLoadError",s.type=a,s.request=o,n[1](s)}}),"chunk-"+t,t)}},i.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,o=r[0],s=r[1],d=r[2],l=0;if(o.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(d)var c=d(i)}for(t&&t(r);l<o.length;l++)a=o[l],i.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return i.O(c)},r=self.webpackChunknextcloud=self.webpackChunknextcloud||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),i.nc=void 0;var s=i.O(void 0,[4208],(()=>i(54445)));s=i.O(s)})();
+//# sourceMappingURL=federatedfilesharing-vue-settings-admin.js.map?v=eb733aa4b839d42fe876 \ No newline at end of file
diff --git a/dist/federatedfilesharing-vue-settings-admin.js.map b/dist/federatedfilesharing-vue-settings-admin.js.map
index a1d927eb5e4..94228c7430d 100644
--- a/dist/federatedfilesharing-vue-settings-admin.js.map
+++ b/dist/federatedfilesharing-vue-settings-admin.js.map
@@ -1 +1 @@
-{"version":3,"file":"federatedfilesharing-vue-settings-admin.js?v=3c97caa61f79b9db2c43","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?3bbd","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?3636","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?93f1","webpack:///nextcloud/apps/federatedfilesharing/src/main-admin.js","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=style&index=0&id=56f0899f&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/get javascript chunk filename","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/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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((key) => (__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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcSettingsSection :name=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<fieldset>\n\t\t\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\n\t\t<!-- Trusted server handling -->\n\t\t<div class=\"settings-subsection\">\n\t\t\t<h3 class=\"settings-subsection__name\">\n\t\t\t\t{{ t('federatedfilesharing', 'Trusted federation') }}\n\t\t\t</h3>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"federatedTrustedShareAutoAccept\"\n\t\t\t\t@update:checked=\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\n\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n.settings-subsection {\n\tmargin-top: 20px;\n}\n\n.settings-subsection__name {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 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!./AdminSettings.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!./AdminSettings.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/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=style&index=0&id=56f0899f&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AdminSettings.vue?vue&type=style&index=0&id=56f0899f&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=56f0899f&scoped=true\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminSettings.vue?vue&type=style&index=0&id=56f0899f&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 \"56f0899f\",\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('federatedfilesharing', 'Federated Cloud Sharing'),\"description\":_vm.t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.'),\"doc-url\":_vm.sharingFederatedDocUrl}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_share_enabled', _vm.outgoingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverShareEnabled=$event},function($event){return _vm.update('incoming_server2server_share_enabled', _vm.incomingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to receive shares from other servers'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_group_share_enabled', _vm.outgoingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('incoming_server2server_group_share_enabled', _vm.incomingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('federatedfilesharing', 'The lookup server is only available for global scale.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerEnabled,\"disabled\":\"\"},on:{\"update:checked\":[function($event){_vm.lookupServerEnabled=$event},function($event){return _vm.update('lookupServerEnabled', _vm.lookupServerEnabled)}]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Search global and public address book for people'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerUploadEnabled,\"disabled\":\"\"},on:{\"update:checked\":[function($event){_vm.lookupServerUploadEnabled=$event},function($event){return _vm.update('lookupServerUploadEnabled', _vm.lookupServerUploadEnabled)}]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people to publish their data to a global and public address book'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"settings-subsection\"},[_c('h3',{staticClass:\"settings-subsection__name\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Trusted federation'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.federatedTrustedShareAutoAccept},on:{\"update:checked\":[function($event){_vm.federatedTrustedShareAutoAccept=$event},function($event){return _vm.update('federatedTrustedShareAutoAccept', _vm.federatedTrustedShareAutoAccept)}]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default'))+\"\\n\\t\\t\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AdminSettings from './components/AdminSettings.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst AdminSettingsView = Vue.extend(AdminSettings)\n\tnew AdminSettingsView().$mount('#vue-admin-federated')\n}\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.settings-subsection[data-v-56f0899f] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-56f0899f] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/federatedfilesharing/src/components/AdminSettings.vue\"],\"names\":[],\"mappings\":\";AAqIA;CACA,gBAAA;AACA;AAEA;CACA,oBAAA;CACA,mBAAA;CACA,uBAAA;CACA,eAAA;CACA,iBAAA;CACA,gBAAA;CACA,aAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<template>\\n\\t<NcSettingsSection :name=\\\"t('federatedfilesharing', 'Federated Cloud Sharing')\\\"\\n\\t\\t:description=\\\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\\\"\\n\\t\\t:doc-url=\\\"sharingFederatedDocUrl\\\">\\n\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"outgoingServer2serverShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"incomingServer2serverShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch v-if=\\\"federatedGroupSharingSupported\\\"\\n\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"outgoingServer2serverGroupShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch v-if=\\\"federatedGroupSharingSupported\\\"\\n\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"incomingServer2serverGroupShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<fieldset>\\n\\t\\t\\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\\n\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"lookupServerEnabled\\\"\\n\\t\\t\\t\\tdisabled\\n\\t\\t\\t\\t@update:checked=\\\"update('lookupServerEnabled', lookupServerEnabled)\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"lookupServerUploadEnabled\\\"\\n\\t\\t\\t\\tdisabled\\n\\t\\t\\t\\t@update:checked=\\\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\t\\t</fieldset>\\n\\n\\t\\t<!-- Trusted server handling -->\\n\\t\\t<div class=\\\"settings-subsection\\\">\\n\\t\\t\\t<h3 class=\\\"settings-subsection__name\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Trusted federation') }}\\n\\t\\t\\t</h3>\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"federatedTrustedShareAutoAccept\\\"\\n\\t\\t\\t\\t@update:checked=\\\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\t\\t</div>\\n\\t</NcSettingsSection>\\n</template>\\n\\n<script>\\nimport { loadState } from '@nextcloud/initial-state'\\nimport { showError } from '@nextcloud/dialogs'\\nimport { generateOcsUrl } from '@nextcloud/router'\\nimport { confirmPassword } from '@nextcloud/password-confirmation'\\nimport axios from '@nextcloud/axios'\\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\\n\\nimport '@nextcloud/password-confirmation/dist/style.css'\\n\\nexport default {\\n\\tname: 'AdminSettings',\\n\\n\\tcomponents: {\\n\\t\\tNcCheckboxRadioSwitch,\\n\\t\\tNcSettingsSection,\\n\\t},\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\\n\\t\\t\\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\\n\\t\\t\\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\\n\\t\\t\\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\\n\\t\\t\\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\\n\\t\\t\\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\\n\\t\\t\\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\\n\\t\\t\\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\\n\\t\\t\\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\\n\\t\\t\\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\\n\\t\\t}\\n\\t},\\n\\tmethods: {\\n\\t\\tasync update(key, value) {\\n\\t\\t\\tawait confirmPassword()\\n\\n\\t\\t\\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\\n\\t\\t\\t\\tappId: 'files_sharing',\\n\\t\\t\\t\\tkey,\\n\\t\\t\\t})\\n\\n\\t\\t\\tconst stringValue = value ? 'yes' : 'no'\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst { data } = await axios.post(url, {\\n\\t\\t\\t\\t\\tvalue: stringValue,\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\tthis.handleResponse({\\n\\t\\t\\t\\t\\tstatus: data.ocs?.meta?.status,\\n\\t\\t\\t\\t})\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\tthis.handleResponse({\\n\\t\\t\\t\\t\\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\\n\\t\\t\\t\\t\\terror: e,\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tasync handleResponse({ status, errorMessage, error }) {\\n\\t\\t\\tif (status !== 'ok') {\\n\\t\\t\\t\\tshowError(errorMessage)\\n\\t\\t\\t\\tconsole.error(errorMessage, error)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n.settings-subsection {\\n\\tmargin-top: 20px;\\n}\\n\\n.settings-subsection__name {\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tfont-size: 16px;\\n\\tfont-weight: bold;\\n\\tmax-width: 900px;\\n\\tmargin-top: 0;\\n}\\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"44b85e4901c485417f88\",\"5862\":\"142cd48ca8ec32e57725\",\"6146\":\"5f2015343db7411125d5\",\"8289\":\"8f098190dce9305dab1e\"}[chunkId] + \"\";\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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5098;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__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\t5098: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (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((id) => (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, [4208], () => (__webpack_require__(70975)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","NcCheckboxRadioSwitch","NcSettingsSection","data","outgoingServer2serverShareEnabled","loadState","incomingServer2serverShareEnabled","outgoingServer2serverGroupShareEnabled","incomingServer2serverGroupShareEnabled","federatedGroupSharingSupported","lookupServerEnabled","lookupServerUploadEnabled","federatedTrustedShareAutoAccept","internalOnly","sharingFederatedDocUrl","methods","update","key","value","confirmPassword","url","generateOcsUrl","appId","stringValue","axios","post","handleResponse","status","ocs","meta","e","errorMessage","t","error","_ref","showError","console","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","attrs","on","$event","_v","_s","_e","staticClass","__webpack_nonce__","getCSPNonce","Vue","mixin","extend","AdminSettings","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","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","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"federatedfilesharing-vue-settings-admin.js?v=eb733aa4b839d42fe876","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?18ee","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?3636","webpack://nextcloud/./apps/federatedfilesharing/src/components/AdminSettings.vue?93f1","webpack:///nextcloud/apps/federatedfilesharing/src/main-admin.js","webpack:///nextcloud/apps/federatedfilesharing/src/components/AdminSettings.vue?vue&type=style&index=0&id=a053a914&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/get javascript chunk filename","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/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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((key) => (__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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcSettingsSection :name=\"t('federatedfilesharing', 'Federated Cloud Sharing')\"\n\t\t:description=\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\"\n\t\t:doc-url=\"sharingFederatedDocUrl\">\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"outgoingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch v-if=\"federatedGroupSharingSupported\"\n\t\t\ttype=\"switch\"\n\t\t\t:checked.sync=\"incomingServer2serverGroupShareEnabled\"\n\t\t\t@update:checked=\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<fieldset>\n\t\t\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"lookupServerEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"showLookupServerConfirmation\">\n\t\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked=\"lookupServerUploadEnabled\"\n\t\t\t\tdisabled\n\t\t\t\t@update:checked=\"showLookupServerUploadConfirmation\">\n\t\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\n\t\t<!-- Trusted server handling -->\n\t\t<div class=\"settings-subsection\">\n\t\t\t<h3 class=\"settings-subsection__name\">\n\t\t\t\t{{ t('federatedfilesharing', 'Trusted federation') }}\n\t\t\t</h3>\n\t\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t\t:checked.sync=\"federatedTrustedShareAutoAccept\"\n\t\t\t\t@update:checked=\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\">\n\t\t\t\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</div>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport { loadState } from '@nextcloud/initial-state'\nimport { DialogBuilder, DialogSeverity, showError } from '@nextcloud/dialogs'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\nimport axios from '@nextcloud/axios'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\n\nimport '@nextcloud/password-confirmation/dist/style.css'\n\nexport default {\n\tname: 'AdminSettings',\n\n\tcomponents: {\n\t\tNcCheckboxRadioSwitch,\n\t\tNcSettingsSection,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\n\t\t\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\n\t\t\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\n\t\t\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\n\t\t\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\n\t\t\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\n\t\t\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\n\t\t\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\n\t\t\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\n\t\t\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\n\t\t}\n\t},\n\tmethods: {\n\t\tsetLookupServerUploadEnabled(state) {\n\t\t\tif (state === this.lookupServerUploadEnabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lookupServerUploadEnabled = state\n\t\t\tthis.update('lookupServerUploadEnabled', state)\n\t\t},\n\n\t\tasync showLookupServerUploadConfirmation(state) {\n\t\t\t// No confirmation needed for disabling\n\t\t\tif (state === false) {\n\t\t\t\treturn this.setLookupServerUploadEnabled(false)\n\t\t\t}\n\n\t\t\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))\n\t\t\tawait dialog\n\t\t\t\t.setSeverity(DialogSeverity.Warning)\n\t\t\t\t.setText(\n\t\t\t\t\tt('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to \"published\", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),\n\t\t\t\t)\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerUploadEnabled(false),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Disable upload'),\n\t\t\t\t})\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerUploadEnabled(true),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Enable data upload'),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\t\t.show()\n\t\t},\n\n\t\tsetLookupServerEnabled(state) {\n\t\t\tif (state === this.lookupServerEnabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.lookupServerEnabled = state\n\t\t\tthis.update('lookupServerEnabled', state)\n\t\t},\n\n\t\tasync showLookupServerConfirmation(state) {\n\t\t\t// No confirmation needed for disabling\n\t\t\tif (state === false) {\n\t\t\t\treturn this.setLookupServerEnabled(false)\n\t\t\t}\n\n\t\t\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))\n\t\t\tawait dialog\n\t\t\t\t.setSeverity(DialogSeverity.Warning)\n\t\t\t\t.setText(\n\t\t\t\t\tt('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')\n\t\t\t\t\t+ t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')\n\t\t\t\t\t+ t('federatedfilesharing', 'Moreover email addresses of users might be sent to that system in order to verify it.'),\n\t\t\t\t)\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerEnabled(false),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Disable querying'),\n\t\t\t\t})\n\t\t\t\t.addButton({\n\t\t\t\t\tcallback: () => this.setLookupServerEnabled(true),\n\t\t\t\t\tlabel: t('federatedfilesharing', 'Enable querying'),\n\t\t\t\t\ttype: 'error',\n\t\t\t\t})\n\t\t\t\t.build()\n\t\t\t\t.show()\n\t\t},\n\n\t\tasync update(key, value) {\n\t\t\tawait confirmPassword()\n\n\t\t\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\n\t\t\t\tappId: 'files_sharing',\n\t\t\t\tkey,\n\t\t\t})\n\n\t\t\tconst stringValue = value ? 'yes' : 'no'\n\t\t\ttry {\n\t\t\t\tconst { data } = await axios.post(url, {\n\t\t\t\t\tvalue: stringValue,\n\t\t\t\t})\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\tstatus: data.ocs?.meta?.status,\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tthis.handleResponse({\n\t\t\t\t\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\n\t\t\t\t\terror: e,\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\t\tasync handleResponse({ status, errorMessage, error }) {\n\t\t\tif (status !== 'ok') {\n\t\t\t\tshowError(errorMessage)\n\t\t\t\tconsole.error(errorMessage, error)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style scoped>\n.settings-subsection {\n\tmargin-top: 20px;\n}\n\n.settings-subsection__name {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 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!./AdminSettings.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!./AdminSettings.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/vue-loader/lib/index.js??vue-loader-options!./AdminSettings.vue?vue&type=style&index=0&id=a053a914&prod&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\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!./AdminSettings.vue?vue&type=style&index=0&id=a053a914&prod&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AdminSettings.vue?vue&type=template&id=a053a914&scoped=true\"\nimport script from \"./AdminSettings.vue?vue&type=script&lang=js\"\nexport * from \"./AdminSettings.vue?vue&type=script&lang=js\"\nimport style0 from \"./AdminSettings.vue?vue&type=style&index=0&id=a053a914&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 \"a053a914\",\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('federatedfilesharing', 'Federated Cloud Sharing'),\"description\":_vm.t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.'),\"doc-url\":_vm.sharingFederatedDocUrl}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_share_enabled', _vm.outgoingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverShareEnabled=$event},function($event){return _vm.update('incoming_server2server_share_enabled', _vm.incomingServer2serverShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to receive shares from other servers'))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.outgoingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.outgoingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('outgoing_server2server_group_share_enabled', _vm.outgoingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.federatedGroupSharingSupported)?_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.incomingServer2serverGroupShareEnabled},on:{\"update:checked\":[function($event){_vm.incomingServer2serverGroupShareEnabled=$event},function($event){return _vm.update('incoming_server2server_group_share_enabled', _vm.incomingServer2serverGroupShareEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('federatedfilesharing', 'The lookup server is only available for global scale.')))]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerEnabled,\"disabled\":\"\"},on:{\"update:checked\":_vm.showLookupServerConfirmation}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Search global and public address book for people'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerUploadEnabled,\"disabled\":\"\"},on:{\"update:checked\":_vm.showLookupServerUploadConfirmation}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people to publish their data to a global and public address book'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"settings-subsection\"},[_c('h3',{staticClass:\"settings-subsection__name\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Trusted federation'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.federatedTrustedShareAutoAccept},on:{\"update:checked\":[function($event){_vm.federatedTrustedShareAutoAccept=$event},function($event){return _vm.update('federatedTrustedShareAutoAccept', _vm.federatedTrustedShareAutoAccept)}]}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default'))+\"\\n\\t\\t\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue'\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { translate as t } from '@nextcloud/l10n'\nimport { loadState } from '@nextcloud/initial-state'\n\nimport AdminSettings from './components/AdminSettings.vue'\n\n__webpack_nonce__ = getCSPNonce()\n\nVue.mixin({\n\tmethods: {\n\t\tt,\n\t},\n})\n\nconst internalOnly = loadState('federatedfilesharing', 'internalOnly', false)\n\nif (!internalOnly) {\n\tconst AdminSettingsView = Vue.extend(AdminSettings)\n\tnew AdminSettingsView().$mount('#vue-admin-federated')\n}\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.settings-subsection[data-v-a053a914] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-a053a914] {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tfont-size: 16px;\n\tfont-weight: bold;\n\tmax-width: 900px;\n\tmargin-top: 0;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/federatedfilesharing/src/components/AdminSettings.vue\"],\"names\":[],\"mappings\":\";AAyMA;CACA,gBAAA;AACA;AAEA;CACA,oBAAA;CACA,mBAAA;CACA,uBAAA;CACA,eAAA;CACA,iBAAA;CACA,gBAAA;CACA,aAAA;AACA\",\"sourcesContent\":[\"<!--\\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\\n - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<template>\\n\\t<NcSettingsSection :name=\\\"t('federatedfilesharing', 'Federated Cloud Sharing')\\\"\\n\\t\\t:description=\\\"t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')\\\"\\n\\t\\t:doc-url=\\\"sharingFederatedDocUrl\\\">\\n\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"outgoingServer2serverShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"incomingServer2serverShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch v-if=\\\"federatedGroupSharingSupported\\\"\\n\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"outgoingServer2serverGroupShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch v-if=\\\"federatedGroupSharingSupported\\\"\\n\\t\\t\\ttype=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"incomingServer2serverGroupShareEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<fieldset>\\n\\t\\t\\t<legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend>\\n\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked=\\\"lookupServerEnabled\\\"\\n\\t\\t\\t\\tdisabled\\n\\t\\t\\t\\t@update:checked=\\\"showLookupServerConfirmation\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked=\\\"lookupServerUploadEnabled\\\"\\n\\t\\t\\t\\tdisabled\\n\\t\\t\\t\\t@update:checked=\\\"showLookupServerUploadConfirmation\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\t\\t</fieldset>\\n\\n\\t\\t<!-- Trusted server handling -->\\n\\t\\t<div class=\\\"settings-subsection\\\">\\n\\t\\t\\t<h3 class=\\\"settings-subsection__name\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Trusted federation') }}\\n\\t\\t\\t</h3>\\n\\t\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t\\t:checked.sync=\\\"federatedTrustedShareAutoAccept\\\"\\n\\t\\t\\t\\t@update:checked=\\\"update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)\\\">\\n\\t\\t\\t\\t{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}\\n\\t\\t\\t</NcCheckboxRadioSwitch>\\n\\t\\t</div>\\n\\t</NcSettingsSection>\\n</template>\\n\\n<script>\\nimport { loadState } from '@nextcloud/initial-state'\\nimport { DialogBuilder, DialogSeverity, showError } from '@nextcloud/dialogs'\\nimport { generateOcsUrl } from '@nextcloud/router'\\nimport { confirmPassword } from '@nextcloud/password-confirmation'\\nimport axios from '@nextcloud/axios'\\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\\nimport NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'\\n\\nimport '@nextcloud/password-confirmation/dist/style.css'\\n\\nexport default {\\n\\tname: 'AdminSettings',\\n\\n\\tcomponents: {\\n\\t\\tNcCheckboxRadioSwitch,\\n\\t\\tNcSettingsSection,\\n\\t},\\n\\n\\tdata() {\\n\\t\\treturn {\\n\\t\\t\\toutgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),\\n\\t\\t\\tincomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),\\n\\t\\t\\toutgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),\\n\\t\\t\\tincomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),\\n\\t\\t\\tfederatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),\\n\\t\\t\\tlookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),\\n\\t\\t\\tlookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),\\n\\t\\t\\tfederatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),\\n\\t\\t\\tinternalOnly: loadState('federatedfilesharing', 'internalOnly'),\\n\\t\\t\\tsharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),\\n\\t\\t}\\n\\t},\\n\\tmethods: {\\n\\t\\tsetLookupServerUploadEnabled(state) {\\n\\t\\t\\tif (state === this.lookupServerUploadEnabled) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\t\\t\\tthis.lookupServerUploadEnabled = state\\n\\t\\t\\tthis.update('lookupServerUploadEnabled', state)\\n\\t\\t},\\n\\n\\t\\tasync showLookupServerUploadConfirmation(state) {\\n\\t\\t\\t// No confirmation needed for disabling\\n\\t\\t\\tif (state === false) {\\n\\t\\t\\t\\treturn this.setLookupServerUploadEnabled(false)\\n\\t\\t\\t}\\n\\n\\t\\t\\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))\\n\\t\\t\\tawait dialog\\n\\t\\t\\t\\t.setSeverity(DialogSeverity.Warning)\\n\\t\\t\\t\\t.setText(\\n\\t\\t\\t\\t\\tt('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to \\\"published\\\", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),\\n\\t\\t\\t\\t)\\n\\t\\t\\t\\t.addButton({\\n\\t\\t\\t\\t\\tcallback: () => this.setLookupServerUploadEnabled(false),\\n\\t\\t\\t\\t\\tlabel: t('federatedfilesharing', 'Disable upload'),\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.addButton({\\n\\t\\t\\t\\t\\tcallback: () => this.setLookupServerUploadEnabled(true),\\n\\t\\t\\t\\t\\tlabel: t('federatedfilesharing', 'Enable data upload'),\\n\\t\\t\\t\\t\\ttype: 'error',\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.build()\\n\\t\\t\\t\\t.show()\\n\\t\\t},\\n\\n\\t\\tsetLookupServerEnabled(state) {\\n\\t\\t\\tif (state === this.lookupServerEnabled) {\\n\\t\\t\\t\\treturn\\n\\t\\t\\t}\\n\\t\\t\\tthis.lookupServerEnabled = state\\n\\t\\t\\tthis.update('lookupServerEnabled', state)\\n\\t\\t},\\n\\n\\t\\tasync showLookupServerConfirmation(state) {\\n\\t\\t\\t// No confirmation needed for disabling\\n\\t\\t\\tif (state === false) {\\n\\t\\t\\t\\treturn this.setLookupServerEnabled(false)\\n\\t\\t\\t}\\n\\n\\t\\t\\tconst dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))\\n\\t\\t\\tawait dialog\\n\\t\\t\\t\\t.setSeverity(DialogSeverity.Warning)\\n\\t\\t\\t\\t.setText(\\n\\t\\t\\t\\t\\tt('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')\\n\\t\\t\\t\\t\\t+ t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')\\n\\t\\t\\t\\t\\t+ t('federatedfilesharing', 'Moreover email addresses of users might be sent to that system in order to verify it.'),\\n\\t\\t\\t\\t)\\n\\t\\t\\t\\t.addButton({\\n\\t\\t\\t\\t\\tcallback: () => this.setLookupServerEnabled(false),\\n\\t\\t\\t\\t\\tlabel: t('federatedfilesharing', 'Disable querying'),\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.addButton({\\n\\t\\t\\t\\t\\tcallback: () => this.setLookupServerEnabled(true),\\n\\t\\t\\t\\t\\tlabel: t('federatedfilesharing', 'Enable querying'),\\n\\t\\t\\t\\t\\ttype: 'error',\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\t.build()\\n\\t\\t\\t\\t.show()\\n\\t\\t},\\n\\n\\t\\tasync update(key, value) {\\n\\t\\t\\tawait confirmPassword()\\n\\n\\t\\t\\tconst url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {\\n\\t\\t\\t\\tappId: 'files_sharing',\\n\\t\\t\\t\\tkey,\\n\\t\\t\\t})\\n\\n\\t\\t\\tconst stringValue = value ? 'yes' : 'no'\\n\\t\\t\\ttry {\\n\\t\\t\\t\\tconst { data } = await axios.post(url, {\\n\\t\\t\\t\\t\\tvalue: stringValue,\\n\\t\\t\\t\\t})\\n\\t\\t\\t\\tthis.handleResponse({\\n\\t\\t\\t\\t\\tstatus: data.ocs?.meta?.status,\\n\\t\\t\\t\\t})\\n\\t\\t\\t} catch (e) {\\n\\t\\t\\t\\tthis.handleResponse({\\n\\t\\t\\t\\t\\terrorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),\\n\\t\\t\\t\\t\\terror: e,\\n\\t\\t\\t\\t})\\n\\t\\t\\t}\\n\\t\\t},\\n\\t\\tasync handleResponse({ status, errorMessage, error }) {\\n\\t\\t\\tif (status !== 'ok') {\\n\\t\\t\\t\\tshowError(errorMessage)\\n\\t\\t\\t\\tconsole.error(errorMessage, error)\\n\\t\\t\\t}\\n\\t\\t},\\n\\t},\\n}\\n</script>\\n<style scoped>\\n.settings-subsection {\\n\\tmargin-top: 20px;\\n}\\n\\n.settings-subsection__name {\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tfont-size: 16px;\\n\\tfont-weight: bold;\\n\\tmax-width: 900px;\\n\\tmargin-top: 0;\\n}\\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 = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"2441\":\"44b85e4901c485417f88\",\"5862\":\"142cd48ca8ec32e57725\",\"6146\":\"5f2015343db7411125d5\",\"8289\":\"8f098190dce9305dab1e\"}[chunkId] + \"\";\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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5098;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__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\t5098: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (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((id) => (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, [4208], () => (__webpack_require__(54445)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","name","components","NcCheckboxRadioSwitch","NcSettingsSection","data","outgoingServer2serverShareEnabled","loadState","incomingServer2serverShareEnabled","outgoingServer2serverGroupShareEnabled","incomingServer2serverGroupShareEnabled","federatedGroupSharingSupported","lookupServerEnabled","lookupServerUploadEnabled","federatedTrustedShareAutoAccept","internalOnly","sharingFederatedDocUrl","methods","setLookupServerUploadEnabled","state","update","showLookupServerUploadConfirmation","dialog","DialogBuilder","t","setSeverity","DialogSeverity","Warning","setText","addButton","callback","label","type","build","show","setLookupServerEnabled","showLookupServerConfirmation","key","value","confirmPassword","url","generateOcsUrl","appId","stringValue","axios","post","handleResponse","status","ocs","meta","e","errorMessage","error","_ref","showError","console","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","attrs","on","$event","_v","_s","_e","staticClass","__webpack_nonce__","getCSPNonce","Vue","mixin","extend","AdminSettings","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","loaded","__webpack_modules__","call","m","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","f","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","l","done","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file