diff options
13 files changed, 89 insertions, 74 deletions
diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index c7ee40a0cbe..58eaca0361e 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -998,8 +998,10 @@ class FederatedShareProvider implements IShareProvider { if ($this->gsConfig->isGlobalScaleEnabled()) { return true; } - $result = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'yes'); - return $result === 'yes'; + $result = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'no') === 'yes'; + // TODO: Reenable if lookup server is used again + // return $result; + return false; } @@ -1011,8 +1013,10 @@ class FederatedShareProvider implements IShareProvider { if ($this->gsConfig->isGlobalScaleEnabled()) { return false; } - $result = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes'); - return $result === 'yes'; + $result = $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'no') === 'yes'; + // TODO: Reenable if lookup server is used again + // return $result; + return false; } /** diff --git a/apps/federatedfilesharing/src/components/AdminSettings.vue b/apps/federatedfilesharing/src/components/AdminSettings.vue index 50ca46ae2b4..9f565aea3f6 100644 --- a/apps/federatedfilesharing/src/components/AdminSettings.vue +++ b/apps/federatedfilesharing/src/components/AdminSettings.vue @@ -32,17 +32,23 @@ {{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }} </NcCheckboxRadioSwitch> - <NcCheckboxRadioSwitch type="switch" - :checked.sync="lookupServerEnabled" - @update:checked="update('lookupServerEnabled', lookupServerEnabled)"> - {{ t('federatedfilesharing', 'Search global and public address book for people') }} - </NcCheckboxRadioSwitch> + <fieldset> + <legend>{{ t('federatedfilesharing', 'The lookup server is only available for global scale.') }}</legend> - <NcCheckboxRadioSwitch type="switch" - :checked.sync="lookupServerUploadEnabled" - @update:checked="update('lookupServerUploadEnabled', lookupServerUploadEnabled)"> - {{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }} - </NcCheckboxRadioSwitch> + <NcCheckboxRadioSwitch type="switch" + :checked.sync="lookupServerEnabled" + disabled + @update:checked="update('lookupServerEnabled', lookupServerEnabled)"> + {{ t('federatedfilesharing', 'Search global and public address book for people') }} + </NcCheckboxRadioSwitch> + + <NcCheckboxRadioSwitch type="switch" + :checked.sync="lookupServerUploadEnabled" + disabled + @update:checked="update('lookupServerUploadEnabled', lookupServerUploadEnabled)"> + {{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }} + </NcCheckboxRadioSwitch> + </fieldset> <!-- Trusted server handling --> <div class="settings-subsection"> diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php index 2bdc2d5e744..002a8bac374 100644 --- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php +++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php @@ -825,7 +825,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled') ->willReturn($gsEnabled); $this->config->expects($this->any())->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') + ->with('files_sharing', 'lookupServerEnabled', 'no') ->willReturn($isEnabled); $this->assertSame($expected, @@ -836,10 +836,13 @@ class FederatedShareProviderTest extends \Test\TestCase { public function dataTestIsLookupServerQueriesEnabled() { return [ - [false, 'yes', true], - [false, 'no', false], [true, 'yes', true], [true, 'no', true], + // TODO: reenable if we use the lookup server for non-global scale + // [false, 'yes', true], + // [false, 'no', false], + [false, 'no', false], + [false, 'yes', false], ]; } @@ -853,7 +856,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->gsConfig->expects($this->once())->method('isGlobalScaleEnabled') ->willReturn($gsEnabled); $this->config->expects($this->any())->method('getAppValue') - ->with('files_sharing', 'lookupServerUploadEnabled', 'yes') + ->with('files_sharing', 'lookupServerUploadEnabled', 'no') ->willReturn($isEnabled); $this->assertSame($expected, @@ -863,10 +866,13 @@ class FederatedShareProviderTest extends \Test\TestCase { public function dataTestIsLookupServerUploadEnabled() { return [ - [false, 'yes', true], - [false, 'no', false], [true, 'yes', false], [true, 'no', false], + // TODO: reenable if we use the lookup server again + // [false, 'yes', true], + // [false, 'no', false], + [false, 'yes', false], + [false, 'no', false], ]; } diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index d61dd7faf30..0c458ce9662 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -22,6 +22,7 @@ use OCP\Collaboration\Collaborators\ISearch; use OCP\Collaboration\Collaborators\ISearchResult; use OCP\Collaboration\Collaborators\SearchResultType; use OCP\Constants; +use OCP\GlobalScale\IConfig as GlobalScaleIConfig; use OCP\IConfig; use OCP\IRequest; use OCP\IURLGenerator; @@ -175,15 +176,11 @@ class ShareesAPIController extends OCSController { $this->limit = $perPage; $this->offset = $perPage * ($page - 1); - // In global scale mode we always search the loogup server - if ($this->config->getSystemValueBool('gs.enabled', false)) { - $lookup = true; - $this->result['lookupEnabled'] = true; - } else { - $this->result['lookupEnabled'] = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'yes') === 'yes'; - } + // In global scale mode we always search the lookup server + $this->result['lookupEnabled'] = Server::get(GlobalScaleIConfig::class)->isGlobalScaleEnabled(); + // TODO: Reconsider using lookup server for non-global-scale federation - [$result, $hasMoreResults] = $this->collaboratorSearch->search($search, $shareTypes, $lookup, $this->limit, $this->offset); + [$result, $hasMoreResults] = $this->collaboratorSearch->search($search, $shareTypes, $this->result['lookupEnabled'], $this->limit, $this->offset); // extra treatment for 'exact' subarray, with a single merge expected keys might be lost if (isset($result['exact'])) { diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php index b3b395da8c0..c8113558f6c 100644 --- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php @@ -11,6 +11,7 @@ use OCA\Files_Sharing\Tests\TestCase; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\Collaboration\Collaborators\ISearch; +use OCP\GlobalScale\IConfig as GlobalScaleIConfig; use OCP\IConfig; use OCP\IRequest; use OCP\IURLGenerator; @@ -229,14 +230,14 @@ class ShareesAPIControllerTest extends TestCase { $perPage = $getData['perPage'] ?? 200; $shareType = $getData['shareType'] ?? null; + $globalConfig = $this->createMock(GlobalScaleIConfig::class); + $globalConfig->expects(self::once()) + ->method('isGlobalScaleEnabled') + ->willReturn(true); + $this->overwriteService(GlobalScaleIConfig::class, $globalConfig); + /** @var IConfig|MockObject $config */ $config = $this->createMock(IConfig::class); - $config->expects($this->exactly(1)) - ->method('getAppValue') - ->with($this->anything(), $this->anything(), $this->anything()) - ->willReturnMap([ - ['files_sharing', 'lookupServerEnabled', 'yes', 'yes'], - ]); $this->shareManager->expects($this->once()) ->method('allowGroupSharing') diff --git a/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php b/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php index 924dec6762d..08fe0b3fa2b 100644 --- a/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php +++ b/apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php @@ -84,10 +84,12 @@ class RetryJob extends Job { * - max retries are reached (set to 5) */ protected function shouldRemoveBackgroundJob(): bool { - return $this->config->getSystemValueBool('has_internet_connection', true) === false || - $this->config->getSystemValueString('lookup_server', 'https://lookup.nextcloud.com') === '' || - $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') !== 'yes' || - $this->retries >= 5; + // TODO: Remove global scale condition once lookup server is used for non-global scale federation + // return $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'no') !== 'yes' + return !$this->config->getSystemValueBool('gs.enabled', false) + || $this->config->getSystemValueBool('has_internet_connection', true) === false + || $this->config->getSystemValueString('lookup_server', 'https://lookup.nextcloud.com') === '' + || $this->retries >= 5; } protected function shouldRun(): bool { @@ -149,7 +151,7 @@ class RetryJob extends Job { $user->getUID(), 'lookup_server_connector', 'update_retries', - $this->retries + 1 + (string)($this->retries + 1), ); } } diff --git a/apps/lookup_server_connector/lib/UpdateLookupServer.php b/apps/lookup_server_connector/lib/UpdateLookupServer.php index c689cea1fe0..dac3e8a80fa 100644 --- a/apps/lookup_server_connector/lib/UpdateLookupServer.php +++ b/apps/lookup_server_connector/lib/UpdateLookupServer.php @@ -56,8 +56,9 @@ class UpdateLookupServer { * @return bool */ private function shouldUpdateLookupServer(): bool { - return $this->config->getSystemValueBool('has_internet_connection', true) === true && - $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') === 'yes' && - $this->config->getSystemValueString('lookup_server', 'https://lookup.nextcloud.com') !== ''; + // TODO: Consider reenable for non-global-scale setups by checking "'files_sharing', 'lookupServerUploadEnabled'" instead of "gs.enabled" + return $this->config->getSystemValueBool('gs.enabled', false) + && $this->config->getSystemValueBool('has_internet_connection', true) + && $this->config->getSystemValueString('lookup_server', 'https://lookup.nextcloud.com') !== ''; } } diff --git a/apps/settings/lib/BackgroundJobs/VerifyUserData.php b/apps/settings/lib/BackgroundJobs/VerifyUserData.php index 62b7c44c8ef..eb66644ad91 100644 --- a/apps/settings/lib/BackgroundJobs/VerifyUserData.php +++ b/apps/settings/lib/BackgroundJobs/VerifyUserData.php @@ -120,9 +120,11 @@ class VerifyUserData extends Job { } protected function verifyViaLookupServer(array $argument, string $dataType): bool { - if (empty($this->lookupServerUrl) || - $this->config->getAppValue('files_sharing', 'lookupServerUploadEnabled', 'yes') !== 'yes' || - $this->config->getSystemValue('has_internet_connection', true) === false) { + // TODO: Consider to enable for non-global-scale setups by checking 'files_sharing', 'lookupServerUploadEnabled' + if (!$this->config->getSystemValueBool('gs.enabled', false) + || empty($this->lookupServerUrl) + || $this->config->getSystemValue('has_internet_connection', true) === false + ) { return true; } diff --git a/build/psalm-baseline.xml b/build/psalm-baseline.xml index 3e3b373ec34..6a2d653456c 100644 --- a/build/psalm-baseline.xml +++ b/build/psalm-baseline.xml @@ -983,11 +983,6 @@ <code><![CDATA[$storage1->instanceOfStorage('\OC\Files\ObjectStore\ObjectStoreStorage')]]></code> </RedundantCondition> </file> - <file src="apps/lookup_server_connector/lib/BackgroundJobs/RetryJob.php"> - <InvalidArgument> - <code><![CDATA[$this->retries + 1]]></code> - </InvalidArgument> - </file> <file src="apps/oauth2/lib/Controller/OauthApiController.php"> <NoInterfaceProperties> <code><![CDATA[$this->request->server]]></code> diff --git a/dist/federatedfilesharing-vue-settings-admin.js b/dist/federatedfilesharing-vue-settings-admin.js index ca58650f347..bf391ad3282 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={23255:(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(26904),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("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerEnabled},on:{"update:checked":[function(t){e.lookupServerEnabled=t},function(t){return e.update("lookupServerEnabled",e.lookupServerEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Search global and public address book for people"))+"\n\t")]),e._v(" "),t("NcCheckboxRadioSwitch",{attrs:{type:"switch",checked:e.lookupServerUploadEnabled},on:{"update:checked":[function(t){e.lookupServerUploadEnabled=t},function(t){return e.update("lookupServerUploadEnabled",e.lookupServerUploadEnabled)}]}},[e._v("\n\t\t"+e._s(e.t("federatedfilesharing","Allow people to publish their data to a global and public address book"))+"\n\t")]),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,"1f6ba034",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")},26904:(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-1f6ba034] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-1f6ba034] {\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:";AA+HA;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<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t</NcCheckboxRadioSwitch>\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(23255)));i=s.O(i)})(); -//# sourceMappingURL=federatedfilesharing-vue-settings-admin.js.map?v=494228024f095dc5e381
\ No newline at end of file +(()=>{"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 diff --git a/dist/federatedfilesharing-vue-settings-admin.js.map b/dist/federatedfilesharing-vue-settings-admin.js.map index b46fd1f182d..a1d927eb5e4 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=494228024f095dc5e381","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?a0f7","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=1f6ba034&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<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerEnabled\"\n\t\t\t@update:checked=\"update('lookupServerEnabled', lookupServerEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcCheckboxRadioSwitch type=\"switch\"\n\t\t\t:checked.sync=\"lookupServerUploadEnabled\"\n\t\t\t@update:checked=\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\">\n\t\t\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\n\t\t</NcCheckboxRadioSwitch>\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=1f6ba034&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=1f6ba034&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=1f6ba034&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=1f6ba034&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 \"1f6ba034\",\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('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerEnabled=$event},function($event){return _vm.update('lookupServerEnabled', _vm.lookupServerEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Search global and public address book for people'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"checked\":_vm.lookupServerUploadEnabled},on:{\"update:checked\":[function($event){_vm.lookupServerUploadEnabled=$event},function($event){return _vm.update('lookupServerUploadEnabled', _vm.lookupServerUploadEnabled)}]}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('federatedfilesharing', 'Allow people to publish their data to a global and public address book'))+\"\\n\\t\")]),_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-1f6ba034] {\n\tmargin-top: 20px;\n}\n.settings-subsection__name[data-v-1f6ba034] {\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\":\";AA+HA;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<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"lookupServerEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('lookupServerEnabled', lookupServerEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Search global and public address book for people') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\n\\n\\t\\t<NcCheckboxRadioSwitch type=\\\"switch\\\"\\n\\t\\t\\t:checked.sync=\\\"lookupServerUploadEnabled\\\"\\n\\t\\t\\t@update:checked=\\\"update('lookupServerUploadEnabled', lookupServerUploadEnabled)\\\">\\n\\t\\t\\t{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}\\n\\t\\t</NcCheckboxRadioSwitch>\\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__(23255)))\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=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 diff --git a/lib/private/Collaboration/Collaborators/LookupPlugin.php b/lib/private/Collaboration/Collaborators/LookupPlugin.php index 8b46ad5e072..2c8dc845458 100644 --- a/lib/private/Collaboration/Collaborators/LookupPlugin.php +++ b/lib/private/Collaboration/Collaborators/LookupPlugin.php @@ -32,11 +32,13 @@ class LookupPlugin implements ISearchPlugin { public function search($search, $limit, $offset, ISearchResult $searchResult): bool { $isGlobalScaleEnabled = $this->config->getSystemValueBool('gs.enabled', false); - $isLookupServerEnabled = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'yes') === 'yes'; + $isLookupServerEnabled = $this->config->getAppValue('files_sharing', 'lookupServerEnabled', 'no') === 'yes'; $hasInternetConnection = $this->config->getSystemValueBool('has_internet_connection', true); - // if case of Global Scale we always search the lookup server - if (!$isGlobalScaleEnabled && (!$isLookupServerEnabled || !$hasInternetConnection)) { + // If case of Global Scale we always search the lookup server + // TODO: Reconsider using the lookup server for non-global scale + // if (!$isGlobalScaleEnabled && (!$isLookupServerEnabled || !$hasInternetConnection || $disableLookupServer)) { + if (!$isGlobalScaleEnabled) { return false; } diff --git a/tests/lib/Collaboration/Collaborators/LookupPluginTest.php b/tests/lib/Collaboration/Collaborators/LookupPluginTest.php index b54ca3ee4c3..7ff01831e18 100644 --- a/tests/lib/Collaboration/Collaborators/LookupPluginTest.php +++ b/tests/lib/Collaboration/Collaborators/LookupPluginTest.php @@ -72,7 +72,7 @@ class LookupPluginTest extends TestCase { public function testSearchNoLookupServerURI(): void { $this->config->expects($this->once()) ->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') + ->with('files_sharing', 'lookupServerEnabled', 'no') ->willReturn('yes'); $this->config->expects($this->exactly(2)) ->method('getSystemValueBool') @@ -80,7 +80,7 @@ class LookupPluginTest extends TestCase { ['gs.enabled', false], ['has_internet_connection', true], )->willReturnOnConsecutiveCalls( - false, + true, true, ); @@ -101,7 +101,7 @@ class LookupPluginTest extends TestCase { public function testSearchNoInternet(): void { $this->config->expects($this->once()) ->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') + ->with('files_sharing', 'lookupServerEnabled', 'no') ->willReturn('yes'); $this->config->expects($this->exactly(2)) ->method('getSystemValueBool') @@ -137,7 +137,7 @@ class LookupPluginTest extends TestCase { $this->config->expects($this->once()) ->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') + ->with('files_sharing', 'lookupServerEnabled', 'no') ->willReturn('yes'); $this->config->expects($this->exactly(2)) ->method('getSystemValueBool') @@ -145,7 +145,7 @@ class LookupPluginTest extends TestCase { ['gs.enabled', false], ['has_internet_connection', true], )->willReturnOnConsecutiveCalls( - false, + true, true, ); @@ -197,9 +197,9 @@ class LookupPluginTest extends TestCase { $this->config->expects($this->once()) ->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') + ->with('files_sharing', 'lookupServerEnabled', 'no') ->willReturn($LookupEnabled ? 'yes' : 'no'); - if ($GSEnabled || $LookupEnabled) { + if ($GSEnabled) { $searchResult->expects($this->once()) ->method('addResultSet') ->with($type, $searchParams['expectedResult'], []); @@ -258,11 +258,13 @@ class LookupPluginTest extends TestCase { } - public function testSearchLookupServerDisabled(): void { - $this->config->expects($this->once()) - ->method('getAppValue') - ->with('files_sharing', 'lookupServerEnabled', 'yes') - ->willReturn('no'); + public function testSearchGSDisabled(): void { + $this->config->expects($this->atLeastOnce()) + ->method('getSystemValueBool') + ->willReturnMap([ + ['has_internet_connection', true, true], + ['gs.enabled', false, false], + ]); /** @var ISearchResult|MockObject $searchResult */ $searchResult = $this->createMock(ISearchResult::class); @@ -381,7 +383,6 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[0], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, 'shareWith' => $fedIDs[0] ], 'extra' => ['federationId' => $fedIDs[0]], @@ -390,7 +391,6 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[1], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, 'shareWith' => $fedIDs[1] ], 'extra' => ['federationId' => $fedIDs[1]], @@ -399,7 +399,6 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[2], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, 'shareWith' => $fedIDs[2] ], 'extra' => ['federationId' => $fedIDs[2]], @@ -474,7 +473,7 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[0], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, + 'globalScale' => true, 'shareWith' => $fedIDs[0] ], 'extra' => ['federationId' => $fedIDs[0]], @@ -483,7 +482,7 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[1], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, + 'globalScale' => true, 'shareWith' => $fedIDs[1] ], 'extra' => ['federationId' => $fedIDs[1]], @@ -492,7 +491,7 @@ class LookupPluginTest extends TestCase { 'label' => $fedIDs[2], 'value' => [ 'shareType' => IShare::TYPE_REMOTE, - 'globalScale' => false, + 'globalScale' => true, 'shareWith' => $fedIDs[2] ], 'extra' => ['federationId' => $fedIDs[2]], |