Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis <6653109+artonge@users.noreply.github.com>2022-05-05 18:52:13 +0300
committerGitHub <noreply@github.com>2022-05-05 18:52:13 +0300
commit841a4a4e61a764b433388d8046fed2598b55dfd7 (patch)
treeb8ae568baf64f2c1b834421e1b8019811eda6cd8
parent7718c9776c5903474b8f3cf958cdd18a53b2449e (diff)
parent039a83070327c09e2178ce96b8bebfff4a54a4ec (diff)
Merge pull request #31964 from nextcloud/feat/ignore_mail_during_contact_lookup
Add setting to ignore email during search
-rw-r--r--apps/settings/lib/Settings/Admin/Sharing.php1
-rw-r--r--apps/settings/src/admin.js1
-rw-r--r--apps/settings/templates/settings/admin/sharing.php18
-rw-r--r--apps/settings/tests/Settings/Admin/SharingTest.php4
-rw-r--r--build/integration/features/bootstrap/CollaborationContext.php1
-rw-r--r--dist/settings-legacy-admin.js4
-rw-r--r--dist/settings-legacy-admin.js.map2
-rw-r--r--lib/private/Collaboration/Collaborators/MailPlugin.php7
-rw-r--r--lib/private/Collaboration/Collaborators/UserPlugin.php5
9 files changed, 21 insertions, 22 deletions
diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php
index 56c89c515a8..ffe1e5acd45 100644
--- a/apps/settings/lib/Settings/Admin/Sharing.php
+++ b/apps/settings/lib/Settings/Admin/Sharing.php
@@ -90,6 +90,7 @@ class Sharing implements IDelegatedSettings {
'restrictUserEnumerationToPhone' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no'),
'restrictUserEnumerationFullMatch' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match', 'yes'),
'restrictUserEnumerationFullMatchUserId' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes'),
+ 'restrictUserEnumerationFullMatchEmail' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes'),
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no'),
'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(false),
'passwordExcludedGroups' => $excludedPasswordGroupsList,
diff --git a/apps/settings/src/admin.js b/apps/settings/src/admin.js
index feb03a865b9..8012dcb8863 100644
--- a/apps/settings/src/admin.js
+++ b/apps/settings/src/admin.js
@@ -157,6 +157,7 @@ window.addEventListener('DOMContentLoaded', () => {
$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {
$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)
+ $('#shareapi_restrict_user_enumeration_full_match_email_setting').toggleClass('hidden', !this.checked)
$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)
})
diff --git a/apps/settings/templates/settings/admin/sharing.php b/apps/settings/templates/settings/admin/sharing.php
index 04c7f1aa3ae..67a846bcc0c 100644
--- a/apps/settings/templates/settings/admin/sharing.php
+++ b/apps/settings/templates/settings/admin/sharing.php
@@ -247,24 +247,6 @@
} ?> />
<label for="shareapi_restrict_user_enumeration_full_match"><?php p($l->t('Allow autocompletion when entering the full name or email address (ignoring missing phonebook match and being in the same group)'));?></label><br />
</p>
- <p id="shareapi_restrict_user_enumeration_full_match_userid_setting" class="double-indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['restrictUserEnumerationFullMatch'] === 'no') {
- p('hidden');
-}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match_userid" value="1" id="shareapi_restrict_user_enumeration_full_match_userid" class="checkbox"
- <?php if ($_['restrictUserEnumerationFullMatchUserId'] === 'yes') {
- print_unescaped('checked="checked"');
-} ?> />
- <label for="shareapi_restrict_user_enumeration_full_match_userid"><?php p($l->t('Match username when restricting to full match'));?></label><br />
- </p>
- <p id="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting" class="double-indent <?php if ($_['shareAPIEnabled'] === 'no' || $_['restrictUserEnumerationFullMatch'] === 'no') {
- p('hidden');
-}?>">
- <input type="checkbox" name="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name" value="1" id="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name" class="checkbox"
- <?php if ($_['restrictUserEnumerationFullMatchIgnoreSecondDisplayName'] === 'yes') {
- print_unescaped('checked="checked"');
-} ?> />
- <label for="shareapi_restrict_user_enumeration_full_match_ignore_second_display_name"><?php p($l->t('Ignore second display name in parentheses if any (example: "First display name (second ignored display name)")'));?></label><br />
- </p>
<p>
<input type="checkbox" id="publicShareDisclaimer" class="checkbox noJSAutoUpdate"
diff --git a/apps/settings/tests/Settings/Admin/SharingTest.php b/apps/settings/tests/Settings/Admin/SharingTest.php
index e0693b4f963..4cb94632f02 100644
--- a/apps/settings/tests/Settings/Admin/SharingTest.php
+++ b/apps/settings/tests/Settings/Admin/SharingTest.php
@@ -84,6 +84,7 @@ class SharingTest extends TestCase {
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
['core', 'shareapi_restrict_user_enumeration_full_match', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes', 'yes'],
+ ['core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no', 'no'],
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_default_expire_date', 'no', 'no'],
@@ -119,6 +120,7 @@ class SharingTest extends TestCase {
'restrictUserEnumerationToPhone' => 'no',
'restrictUserEnumerationFullMatch' => 'yes',
'restrictUserEnumerationFullMatchUserId' => 'yes',
+ 'restrictUserEnumerationFullMatchEmail' => 'yes',
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => 'no',
'enforceLinkPassword' => false,
'onlyShareWithGroupMembers' => false,
@@ -163,6 +165,7 @@ class SharingTest extends TestCase {
['core', 'shareapi_restrict_user_enumeration_to_phone', 'no', 'no'],
['core', 'shareapi_restrict_user_enumeration_full_match', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes', 'yes'],
+ ['core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes', 'yes'],
['core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no', 'no'],
['core', 'shareapi_enabled', 'yes', 'yes'],
['core', 'shareapi_default_expire_date', 'no', 'no'],
@@ -198,6 +201,7 @@ class SharingTest extends TestCase {
'restrictUserEnumerationToPhone' => 'no',
'restrictUserEnumerationFullMatch' => 'yes',
'restrictUserEnumerationFullMatchUserId' => 'yes',
+ 'restrictUserEnumerationFullMatchEmail' => 'yes',
'restrictUserEnumerationFullMatchIgnoreSecondDisplayName' => 'no',
'enforceLinkPassword' => false,
'onlyShareWithGroupMembers' => false,
diff --git a/build/integration/features/bootstrap/CollaborationContext.php b/build/integration/features/bootstrap/CollaborationContext.php
index b62588060a4..be6ae0c3b0d 100644
--- a/build/integration/features/bootstrap/CollaborationContext.php
+++ b/build/integration/features/bootstrap/CollaborationContext.php
@@ -123,6 +123,7 @@ EOF;
$this->deleteServerConfig('core', 'shareapi_restrict_user_enumeration_to_phone');
$this->deleteServerConfig('core', 'shareapi_restrict_user_enumeration_full_match');
$this->deleteServerConfig('core', 'shareapi_restrict_user_enumeration_full_match_userid');
+ $this->deleteServerConfig('core', 'shareapi_restrict_user_enumeration_full_match_email');
$this->deleteServerConfig('core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name');
$this->deleteServerConfig('core', 'shareapi_only_share_with_group_members');
}
diff --git a/dist/settings-legacy-admin.js b/dist/settings-legacy-admin.js
index f38a60f2b0d..df6be2dc55d 100644
--- a/dist/settings-legacy-admin.js
+++ b/dist/settings-legacy-admin.js
@@ -1,2 +1,2 @@
-({39583:function(){var e=this;window.addEventListener("DOMContentLoaded",(function(){$("#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups").each((function(e,t){var s=this;OC.Settings.setupGroupsSelect($(t)),$(t).change((function(e){var t=e.val||[];t=JSON.stringify(t),OCP.AppConfig.setValue("core",$(s).attr("name"),t)}))})),$("#loglevel").change((function(){$.post(OC.generateUrl("/settings/admin/log/level"),{level:$(e).val()},(function(){OC.Log.reload()}))})),$("#backgroundjobs span.crondate").tooltip({placement:"top"}),$("#backgroundjobs input").change((function(){if($(e).is(":checked")){var t=$(e).val();"ajax"!==t&&"webcron"!==t&&"cron"!==t||OCP.AppConfig.setValue("core","backgroundjobs_mode",t,{success:function(){OCP.AppConfig.deleteKey("core","cronErrors")}})}})),$("#shareAPIEnabled").change((function(){$("#shareAPI p:not(#enable)").toggleClass("hidden",!e.checked)})),$("#enableEncryption").change((function(){$("#encryptionAPI div#EncryptionWarning").toggleClass("hidden")})),$("#reallyEnableEncryption").click((function(){$("#encryptionAPI div#EncryptionWarning").toggleClass("hidden"),$("#encryptionAPI div#EncryptionSettingsArea").toggleClass("hidden"),OCP.AppConfig.setValue("core","encryption_enabled","yes"),$("#enableEncryption").attr("disabled","disabled")})),$("#startmigration").click((function(e){$(window).on("beforeunload.encryption",(function(e){return t("settings","Migration in progress. Please wait until the migration is finished")})),e.preventDefault(),$("#startmigration").prop("disabled",!0),OC.msg.startAction("#startmigration_msg",t("settings","Migration started …")),$.post(OC.generateUrl("/settings/admin/startmigration"),"",(function(e){OC.msg.finishedAction("#startmigration_msg",e),"success"===e.status?($("#encryptionAPI div#selectEncryptionModules").toggleClass("hidden"),$("#encryptionAPI div#migrationWarning").toggleClass("hidden")):$("#startmigration").prop("disabled",!1),$(window).off("beforeunload.encryption")}))})),$("#shareapiExpireAfterNDays").on("input",(function(){this.value=this.value.replace(/\D/g,"")})),$("#shareAPI input:not(.noJSAutoUpdate)").change((function(){var e=$(this).val();"checkbox"===$(this).attr("type")&&(e=this.checked?"yes":"no"),OCP.AppConfig.setValue("core",$(this).attr("name"),e)})),$("#shareapiDefaultExpireDate").change((function(){$("setDefaultExpireDate").toggleClass("hidden",!this.checked)})),$("#shareapiDefaultInternalExpireDate").change((function(){$("#setDefaultInternalExpireDate").toggleClass("hidden",!this.checked)})),$("#shareapiDefaultRemoteExpireDate").change((function(){$("#setDefaultRemoteExpireDate").toggleClass("hidden",!this.checked)})),$("#enforceLinkPassword").change((function(){$("#selectPasswordsExcludedGroups").toggleClass("hidden",!this.checked)})),$("#publicShareDisclaimer").change((function(){$("#publicShareDisclaimerText").toggleClass("hidden",!this.checked),this.checked||s("")})),$("#shareApiDefaultPermissionsSection input").change((function(e){var t=$("#shareApiDefaultPermissions"),s=$(e.target),n=t.val();return s.is(":checked")?n|=s.val():n&=~s.val(),n|=OC.PERMISSION_READ,t.val(n).change(),e.preventDefault(),!1}));var s=_.debounce((function(e){var s={success:function(){OC.msg.finishedSuccess("#publicShareDisclaimerStatus",t("settings","Saved"))},error:function(){OC.msg.finishedError("#publicShareDisclaimerStatus",t("settings","Not saved"))}};OC.msg.startSaving("#publicShareDisclaimerStatus"),_.isString(e)&&""!==e?OCP.AppConfig.setValue("core","shareapi_public_link_disclaimertext",e,s):($("#publicShareDisclaimerText").val(""),OCP.AppConfig.deleteKey("core","shareapi_public_link_disclaimertext",s))}),500);$("#publicShareDisclaimerText").on("change, keyup",(function(){s(this.value)})),$("#shareapi_allow_share_dialog_user_enumeration").on("change",(function(){$("#shareapi_restrict_user_enumeration_to_group_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_to_phone_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_combinewarning_setting").toggleClass("hidden",!this.checked)})),$("#shareapi_restrict_user_enumeration_full_match").on("change",(function(){$("#shareapi_restrict_user_enumeration_full_match_userid_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting").toggleClass("hidden",!this.checked)})),$("#allowLinks").change((function(){$("#publicLinkSettings").toggleClass("hidden",!this.checked),$("#setDefaultExpireDate").toggleClass("hidden",!(this.checked&&$("#shareapiDefaultExpireDate")[0].checked))})),$("#mail_smtpauth").change((function(){this.checked?$("#mail_credentials").removeClass("hidden"):$("#mail_credentials").addClass("hidden")})),$("#mail_smtpmode").change((function(){"smtp"!==$(this).val()?($("#setting_smtpauth").addClass("hidden"),$("#setting_smtphost").addClass("hidden"),$("#mail_smtpsecure_label").addClass("hidden"),$("#mail_smtpsecure").addClass("hidden"),$("#mail_credentials").addClass("hidden"),$("#mail_sendmailmode_label, #mail_sendmailmode").removeClass("hidden")):($("#setting_smtpauth").removeClass("hidden"),$("#setting_smtphost").removeClass("hidden"),$("#mail_smtpsecure_label").removeClass("hidden"),$("#mail_smtpsecure").removeClass("hidden"),$("#mail_smtpauth").is(":checked")&&$("#mail_credentials").removeClass("hidden"),$("#mail_sendmailmode_label, #mail_sendmailmode").addClass("hidden"))})),$("#mail_general_settings_form").change((function e(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),$.ajax({url:OC.generateUrl("/settings/admin/mailsettings"),type:"POST",data:$("#mail_general_settings_form").serialize(),success:function(){OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))},error:function(e){OC.msg.finishedError("#mail_settings_msg",e.responseJSON)}}))})),$("#mail_credentials_settings_submit").click((function e(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),$.ajax({url:OC.generateUrl("/settings/admin/mailsettings/credentials"),type:"POST",data:$("#mail_credentials_settings").serialize(),success:function(){OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))},error:function(e){OC.msg.finishedError("#mail_settings_msg",e.responseJSON)}}))})),$("#mail_smtppassword").click((function(){"text"===e.type&&"********"===e.value&&(e.type="password",e.value="")})),$("#sendtestemail").click((function(e){e.preventDefault(),OC.msg.startAction("#sendtestmail_msg",t("settings","Sending…")),$.ajax({url:OC.generateUrl("/settings/admin/mailtest"),type:"POST",success:function(){OC.msg.finishedSuccess("#sendtestmail_msg",t("settings","Email sent"))},error:function(e){OC.msg.finishedError("#sendtestmail_msg",e.responseJSON)}})})),$("#allowGroupSharing").change((function(){$("#allowGroupSharing").toggleClass("hidden",!e.checked)})),$("#shareapiExcludeGroups").change((function(){$("#selectExcludedGroups").toggleClass("hidden",!e.checked)})),null!==document.getElementById("security-warning")&&$.when(OC.SetupChecks.checkWebDAV(),OC.SetupChecks.checkWellKnownUrl("GET","/.well-known/webfinger",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown"),[200,404],!0),OC.SetupChecks.checkWellKnownUrl("GET","/.well-known/nodeinfo",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown"),[200,404],!0),OC.SetupChecks.checkWellKnownUrl("PROPFIND","/.well-known/caldav",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkWellKnownUrl("PROPFIND","/.well-known/carddav",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkProviderUrl(OC.getRootPath()+"/ocm-provider/",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkProviderUrl(OC.getRootPath()+"/ocs-provider/",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkSetup(),OC.SetupChecks.checkGeneric(),OC.SetupChecks.checkWOFF2Loading(OC.filePath("core","","fonts/NotoSans-Regular-latin.woff2"),OC.theme.docPlaceholderUrl),OC.SetupChecks.checkDataProtected()).then((function(e,t,s,n,i,a,r,c,l,o,d){var h=[].concat(e,t,s,n,i,a,r,c,l,o,d),g=$("#postsetupchecks");$("#security-warning-state-loading").addClass("hidden");for(var u=!1,p=g.find(".errors"),m=g.find(".warnings"),C=g.find(".info"),f=0;f<h.length;f++)switch(h[f].type){case OC.SetupChecks.MESSAGE_TYPE_INFO:C.append("<li>"+h[f].msg+"</li>");break;case OC.SetupChecks.MESSAGE_TYPE_WARNING:m.append("<li>"+h[f].msg+"</li>");break;case OC.SetupChecks.MESSAGE_TYPE_ERROR:default:p.append("<li>"+h[f].msg+"</li>")}p.find("li").length>0&&(p.removeClass("hidden"),u=!0),m.find("li").length>0&&(m.removeClass("hidden"),u=!0),C.find("li").length>0&&(C.removeClass("hidden"),u=!0),u?($("#postsetupchecks-hint").removeClass("hidden"),p.find("li").length>0?$("#security-warning-state-failure").removeClass("hidden"):$("#security-warning-state-warning").removeClass("hidden")):0===$("#security-warning").children("ul").children().length?$("#security-warning-state-ok").removeClass("hidden"):$("#security-warning-state-failure").removeClass("hidden")}))}))}})[39583]();
-//# sourceMappingURL=settings-legacy-admin.js.map?v=30352b4a27a5447a55d9 \ No newline at end of file
+({39583:function(){var e=this;window.addEventListener("DOMContentLoaded",(function(){$("#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups").each((function(e,t){var s=this;OC.Settings.setupGroupsSelect($(t)),$(t).change((function(e){var t=e.val||[];t=JSON.stringify(t),OCP.AppConfig.setValue("core",$(s).attr("name"),t)}))})),$("#loglevel").change((function(){$.post(OC.generateUrl("/settings/admin/log/level"),{level:$(e).val()},(function(){OC.Log.reload()}))})),$("#backgroundjobs span.crondate").tooltip({placement:"top"}),$("#backgroundjobs input").change((function(){if($(e).is(":checked")){var t=$(e).val();"ajax"!==t&&"webcron"!==t&&"cron"!==t||OCP.AppConfig.setValue("core","backgroundjobs_mode",t,{success:function(){OCP.AppConfig.deleteKey("core","cronErrors")}})}})),$("#shareAPIEnabled").change((function(){$("#shareAPI p:not(#enable)").toggleClass("hidden",!e.checked)})),$("#enableEncryption").change((function(){$("#encryptionAPI div#EncryptionWarning").toggleClass("hidden")})),$("#reallyEnableEncryption").click((function(){$("#encryptionAPI div#EncryptionWarning").toggleClass("hidden"),$("#encryptionAPI div#EncryptionSettingsArea").toggleClass("hidden"),OCP.AppConfig.setValue("core","encryption_enabled","yes"),$("#enableEncryption").attr("disabled","disabled")})),$("#startmigration").click((function(e){$(window).on("beforeunload.encryption",(function(e){return t("settings","Migration in progress. Please wait until the migration is finished")})),e.preventDefault(),$("#startmigration").prop("disabled",!0),OC.msg.startAction("#startmigration_msg",t("settings","Migration started …")),$.post(OC.generateUrl("/settings/admin/startmigration"),"",(function(e){OC.msg.finishedAction("#startmigration_msg",e),"success"===e.status?($("#encryptionAPI div#selectEncryptionModules").toggleClass("hidden"),$("#encryptionAPI div#migrationWarning").toggleClass("hidden")):$("#startmigration").prop("disabled",!1),$(window).off("beforeunload.encryption")}))})),$("#shareapiExpireAfterNDays").on("input",(function(){this.value=this.value.replace(/\D/g,"")})),$("#shareAPI input:not(.noJSAutoUpdate)").change((function(){var e=$(this).val();"checkbox"===$(this).attr("type")&&(e=this.checked?"yes":"no"),OCP.AppConfig.setValue("core",$(this).attr("name"),e)})),$("#shareapiDefaultExpireDate").change((function(){$("setDefaultExpireDate").toggleClass("hidden",!this.checked)})),$("#shareapiDefaultInternalExpireDate").change((function(){$("#setDefaultInternalExpireDate").toggleClass("hidden",!this.checked)})),$("#shareapiDefaultRemoteExpireDate").change((function(){$("#setDefaultRemoteExpireDate").toggleClass("hidden",!this.checked)})),$("#enforceLinkPassword").change((function(){$("#selectPasswordsExcludedGroups").toggleClass("hidden",!this.checked)})),$("#publicShareDisclaimer").change((function(){$("#publicShareDisclaimerText").toggleClass("hidden",!this.checked),this.checked||s("")})),$("#shareApiDefaultPermissionsSection input").change((function(e){var t=$("#shareApiDefaultPermissions"),s=$(e.target),n=t.val();return s.is(":checked")?n|=s.val():n&=~s.val(),n|=OC.PERMISSION_READ,t.val(n).change(),e.preventDefault(),!1}));var s=_.debounce((function(e){var s={success:function(){OC.msg.finishedSuccess("#publicShareDisclaimerStatus",t("settings","Saved"))},error:function(){OC.msg.finishedError("#publicShareDisclaimerStatus",t("settings","Not saved"))}};OC.msg.startSaving("#publicShareDisclaimerStatus"),_.isString(e)&&""!==e?OCP.AppConfig.setValue("core","shareapi_public_link_disclaimertext",e,s):($("#publicShareDisclaimerText").val(""),OCP.AppConfig.deleteKey("core","shareapi_public_link_disclaimertext",s))}),500);$("#publicShareDisclaimerText").on("change, keyup",(function(){s(this.value)})),$("#shareapi_allow_share_dialog_user_enumeration").on("change",(function(){$("#shareapi_restrict_user_enumeration_to_group_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_to_phone_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_combinewarning_setting").toggleClass("hidden",!this.checked)})),$("#shareapi_restrict_user_enumeration_full_match").on("change",(function(){$("#shareapi_restrict_user_enumeration_full_match_userid_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_full_match_email_setting").toggleClass("hidden",!this.checked),$("#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting").toggleClass("hidden",!this.checked)})),$("#allowLinks").change((function(){$("#publicLinkSettings").toggleClass("hidden",!this.checked),$("#setDefaultExpireDate").toggleClass("hidden",!(this.checked&&$("#shareapiDefaultExpireDate")[0].checked))})),$("#mail_smtpauth").change((function(){this.checked?$("#mail_credentials").removeClass("hidden"):$("#mail_credentials").addClass("hidden")})),$("#mail_smtpmode").change((function(){"smtp"!==$(this).val()?($("#setting_smtpauth").addClass("hidden"),$("#setting_smtphost").addClass("hidden"),$("#mail_smtpsecure_label").addClass("hidden"),$("#mail_smtpsecure").addClass("hidden"),$("#mail_credentials").addClass("hidden"),$("#mail_sendmailmode_label, #mail_sendmailmode").removeClass("hidden")):($("#setting_smtpauth").removeClass("hidden"),$("#setting_smtphost").removeClass("hidden"),$("#mail_smtpsecure_label").removeClass("hidden"),$("#mail_smtpsecure").removeClass("hidden"),$("#mail_smtpauth").is(":checked")&&$("#mail_credentials").removeClass("hidden"),$("#mail_sendmailmode_label, #mail_sendmailmode").addClass("hidden"))})),$("#mail_general_settings_form").change((function e(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),$.ajax({url:OC.generateUrl("/settings/admin/mailsettings"),type:"POST",data:$("#mail_general_settings_form").serialize(),success:function(){OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))},error:function(e){OC.msg.finishedError("#mail_settings_msg",e.responseJSON)}}))})),$("#mail_credentials_settings_submit").click((function e(){OC.PasswordConfirmation.requiresPasswordConfirmation()?OC.PasswordConfirmation.requirePasswordConfirmation(e):(OC.msg.startSaving("#mail_settings_msg"),$.ajax({url:OC.generateUrl("/settings/admin/mailsettings/credentials"),type:"POST",data:$("#mail_credentials_settings").serialize(),success:function(){OC.msg.finishedSuccess("#mail_settings_msg",t("settings","Saved"))},error:function(e){OC.msg.finishedError("#mail_settings_msg",e.responseJSON)}}))})),$("#mail_smtppassword").click((function(){"text"===e.type&&"********"===e.value&&(e.type="password",e.value="")})),$("#sendtestemail").click((function(e){e.preventDefault(),OC.msg.startAction("#sendtestmail_msg",t("settings","Sending…")),$.ajax({url:OC.generateUrl("/settings/admin/mailtest"),type:"POST",success:function(){OC.msg.finishedSuccess("#sendtestmail_msg",t("settings","Email sent"))},error:function(e){OC.msg.finishedError("#sendtestmail_msg",e.responseJSON)}})})),$("#allowGroupSharing").change((function(){$("#allowGroupSharing").toggleClass("hidden",!e.checked)})),$("#shareapiExcludeGroups").change((function(){$("#selectExcludedGroups").toggleClass("hidden",!e.checked)})),null!==document.getElementById("security-warning")&&$.when(OC.SetupChecks.checkWebDAV(),OC.SetupChecks.checkWellKnownUrl("GET","/.well-known/webfinger",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown"),[200,404],!0),OC.SetupChecks.checkWellKnownUrl("GET","/.well-known/nodeinfo",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown"),[200,404],!0),OC.SetupChecks.checkWellKnownUrl("PROPFIND","/.well-known/caldav",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkWellKnownUrl("PROPFIND","/.well-known/carddav",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkProviderUrl(OC.getRootPath()+"/ocm-provider/",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkProviderUrl(OC.getRootPath()+"/ocs-provider/",OC.theme.docPlaceholderUrl,!0===$("#postsetupchecks").data("check-wellknown")),OC.SetupChecks.checkSetup(),OC.SetupChecks.checkGeneric(),OC.SetupChecks.checkWOFF2Loading(OC.filePath("core","","fonts/NotoSans-Regular-latin.woff2"),OC.theme.docPlaceholderUrl),OC.SetupChecks.checkDataProtected()).then((function(e,t,s,n,i,a,r,l,c,o,d){var h=[].concat(e,t,s,n,i,a,r,l,c,o,d),g=$("#postsetupchecks");$("#security-warning-state-loading").addClass("hidden");for(var u=!1,p=g.find(".errors"),m=g.find(".warnings"),C=g.find(".info"),_=0;_<h.length;_++)switch(h[_].type){case OC.SetupChecks.MESSAGE_TYPE_INFO:C.append("<li>"+h[_].msg+"</li>");break;case OC.SetupChecks.MESSAGE_TYPE_WARNING:m.append("<li>"+h[_].msg+"</li>");break;case OC.SetupChecks.MESSAGE_TYPE_ERROR:default:p.append("<li>"+h[_].msg+"</li>")}p.find("li").length>0&&(p.removeClass("hidden"),u=!0),m.find("li").length>0&&(m.removeClass("hidden"),u=!0),C.find("li").length>0&&(C.removeClass("hidden"),u=!0),u?($("#postsetupchecks-hint").removeClass("hidden"),p.find("li").length>0?$("#security-warning-state-failure").removeClass("hidden"):$("#security-warning-state-warning").removeClass("hidden")):0===$("#security-warning").children("ul").children().length?$("#security-warning-state-ok").removeClass("hidden"):$("#security-warning-state-failure").removeClass("hidden")}))}))}})[39583]();
+//# sourceMappingURL=settings-legacy-admin.js.map?v=e5ae92977aa6fb6946a0 \ No newline at end of file
diff --git a/dist/settings-legacy-admin.js.map b/dist/settings-legacy-admin.js.map
index 0ceb751e8cf..398619cef88 100644
--- a/dist/settings-legacy-admin.js.map
+++ b/dist/settings-legacy-admin.js.map
@@ -1 +1 @@
-{"version":3,"file":"settings-legacy-admin.js?v=30352b4a27a5447a55d9","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/admin.js","webpack:///nextcloud/webpack/startup"],"sourcesContent":["window.addEventListener('DOMContentLoaded', () => {\n\t$('#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups').each(function(index, element) {\n\t\tOC.Settings.setupGroupsSelect($(element))\n\t\t$(element).change((ev) => {\n\t\t\tlet groups = ev.val || []\n\t\t\tgroups = JSON.stringify(groups)\n\t\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), groups)\n\t\t})\n\t})\n\n\t$('#loglevel').change(() => {\n\t\t$.post(OC.generateUrl('/settings/admin/log/level'), { level: $(this).val() }, () => {\n\t\t\tOC.Log.reload()\n\t\t})\n\t})\n\n\t$('#backgroundjobs span.crondate').tooltip({ placement: 'top' })\n\n\t$('#backgroundjobs input').change(() => {\n\t\tif ($(this).is(':checked')) {\n\t\t\tconst mode = $(this).val()\n\t\t\tif (mode === 'ajax' || mode === 'webcron' || mode === 'cron') {\n\t\t\t\tOCP.AppConfig.setValue('core', 'backgroundjobs_mode', mode, {\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\t// clear cron errors on background job mode change\n\t\t\t\t\t\tOCP.AppConfig.deleteKey('core', 'cronErrors')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})\n\n\t$('#shareAPIEnabled').change(() => {\n\t\t$('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enableEncryption').change(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t})\n\n\t$('#reallyEnableEncryption').click(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t\t$('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden')\n\t\tOCP.AppConfig.setValue('core', 'encryption_enabled', 'yes')\n\t\t$('#enableEncryption').attr('disabled', 'disabled')\n\t})\n\n\t$('#startmigration').click((event) => {\n\t\t$(window).on('beforeunload.encryption', (e) => {\n\t\t\treturn t('settings', 'Migration in progress. Please wait until the migration is finished')\n\t\t})\n\t\tevent.preventDefault()\n\t\t$('#startmigration').prop('disabled', true)\n\t\tOC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …'))\n\t\t$.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data) {\n\t\t\tOC.msg.finishedAction('#startmigration_msg', data)\n\t\t\tif (data.status === 'success') {\n\t\t\t\t$('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden')\n\t\t\t\t$('#encryptionAPI div#migrationWarning').toggleClass('hidden')\n\t\t\t} else {\n\t\t\t\t$('#startmigration').prop('disabled', false)\n\t\t\t}\n\t\t\t$(window).off('beforeunload.encryption')\n\n\t\t})\n\t})\n\n\t$('#shareapiExpireAfterNDays').on('input', function() {\n\t\tthis.value = this.value.replace(/\\D/g, '')\n\t})\n\n\t$('#shareAPI input:not(.noJSAutoUpdate)').change(function() {\n\t\tlet value = $(this).val()\n\t\tif ($(this).attr('type') === 'checkbox') {\n\t\t\tif (this.checked) {\n\t\t\t\tvalue = 'yes'\n\t\t\t} else {\n\t\t\t\tvalue = 'no'\n\t\t\t}\n\t\t}\n\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), value)\n\t})\n\n\t$('#shareapiDefaultExpireDate').change(function() {\n\t\t$('setDefaultExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultInternalExpireDate').change(function() {\n\t\t$('#setDefaultInternalExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultRemoteExpireDate').change(function() {\n\t\t$('#setDefaultRemoteExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enforceLinkPassword').change(function() {\n\t\t$('#selectPasswordsExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#publicShareDisclaimer').change(function() {\n\t\t$('#publicShareDisclaimerText').toggleClass('hidden', !this.checked)\n\t\tif (!this.checked) {\n\t\t\tsavePublicShareDisclaimerText('')\n\t\t}\n\t})\n\n\t$('#shareApiDefaultPermissionsSection input').change(function(ev) {\n\t\tconst $el = $('#shareApiDefaultPermissions')\n\t\tconst $target = $(ev.target)\n\n\t\tlet value = $el.val()\n\t\tif ($target.is(':checked')) {\n\t\t\tvalue = value | $target.val()\n\t\t} else {\n\t\t\tvalue = value & ~$target.val()\n\t\t}\n\n\t\t// always set read permission\n\t\tvalue |= OC.PERMISSION_READ\n\n\t\t// this will trigger the field's change event and will save it\n\t\t$el.val(value).change()\n\n\t\tev.preventDefault()\n\n\t\treturn false\n\t})\n\n\tconst savePublicShareDisclaimerText = _.debounce(function(value) {\n\t\tconst options = {\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: () => {\n\t\t\t\tOC.msg.finishedError('#publicShareDisclaimerStatus', t('settings', 'Not saved'))\n\t\t\t}\n\t\t}\n\n\t\tOC.msg.startSaving('#publicShareDisclaimerStatus')\n\t\tif (_.isString(value) && value !== '') {\n\t\t\tOCP.AppConfig.setValue('core', 'shareapi_public_link_disclaimertext', value, options)\n\t\t} else {\n\t\t\t$('#publicShareDisclaimerText').val('')\n\t\t\tOCP.AppConfig.deleteKey('core', 'shareapi_public_link_disclaimertext', options)\n\t\t}\n\t}, 500)\n\n\t$('#publicShareDisclaimerText').on('change, keyup', function() {\n\t\tsavePublicShareDisclaimerText(this.value)\n\t})\n\n\t$('#shareapi_allow_share_dialog_user_enumeration').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_to_group_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_to_phone_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_combinewarning_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#allowLinks').change(function() {\n\t\t$('#publicLinkSettings').toggleClass('hidden', !this.checked)\n\t\t$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked))\n\t})\n\n\t$('#mail_smtpauth').change(function() {\n\t\tif (!this.checked) {\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t} else {\n\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t}\n\t})\n\n\t$('#mail_smtpmode').change(function() {\n\t\tif ($(this).val() !== 'smtp') {\n\t\t\t$('#setting_smtpauth').addClass('hidden')\n\t\t\t$('#setting_smtphost').addClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').addClass('hidden')\n\t\t\t$('#mail_smtpsecure').addClass('hidden')\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden')\n\t\t} else {\n\t\t\t$('#setting_smtpauth').removeClass('hidden')\n\t\t\t$('#setting_smtphost').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure').removeClass('hidden')\n\t\t\tif ($('#mail_smtpauth').is(':checked')) {\n\t\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t\t}\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden')\n\t\t}\n\t})\n\n\tconst changeEmailSettings = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_general_settings_form').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\tconst toggleEmailCredentials = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings/credentials'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_credentials_settings').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\t$('#mail_general_settings_form').change(changeEmailSettings)\n\t$('#mail_credentials_settings_submit').click(toggleEmailCredentials)\n\t$('#mail_smtppassword').click(() => {\n\t\tif (this.type === 'text' && this.value === '********') {\n\t\t\tthis.type = 'password'\n\t\t\tthis.value = ''\n\t\t}\n\t})\n\n\t$('#sendtestemail').click((event) => {\n\t\tevent.preventDefault()\n\t\tOC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'))\n\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailtest'),\n\t\t\ttype: 'POST',\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t})\n\n\t$('#allowGroupSharing').change(() => {\n\t\t$('#allowGroupSharing').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiExcludeGroups').change(() => {\n\t\t$('#selectExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\tconst setupChecks = () => {\n\t\t// run setup checks then gather error messages\n\t\t$.when(\n\t\t\tOC.SetupChecks.checkWebDAV(),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/webfinger', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/nodeinfo', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/caldav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/carddav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocm-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocs-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkSetup(),\n\t\t\tOC.SetupChecks.checkGeneric(),\n\t\t\tOC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),\n\t\t\tOC.SetupChecks.checkDataProtected()\n\t\t).then((check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) => {\n\t\t\tconst messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11)\n\t\t\tconst $el = $('#postsetupchecks')\n\t\t\t$('#security-warning-state-loading').addClass('hidden')\n\n\t\t\tlet hasMessages = false\n\t\t\tconst $errorsEl = $el.find('.errors')\n\t\t\tconst $warningsEl = $el.find('.warnings')\n\t\t\tconst $infoEl = $el.find('.info')\n\n\t\t\tfor (let i = 0; i < messages.length; i++) {\n\t\t\t\tswitch (messages[i].type) {\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_INFO:\n\t\t\t\t\t$infoEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_WARNING:\n\t\t\t\t\t$warningsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_ERROR:\n\t\t\t\tdefault:\n\t\t\t\t\t$errorsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t$errorsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($warningsEl.find('li').length > 0) {\n\t\t\t\t$warningsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($infoEl.find('li').length > 0) {\n\t\t\t\t$infoEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\n\t\t\tif (hasMessages) {\n\t\t\t\t$('#postsetupchecks-hint').removeClass('hidden')\n\t\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-warning').removeClass('hidden')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst securityWarning = $('#security-warning')\n\t\t\t\tif (securityWarning.children('ul').children().length === 0) {\n\t\t\t\t\t$('#security-warning-state-ok').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tif (document.getElementById('security-warning') !== null) {\n\t\tsetupChecks()\n\t}\n})\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[39583]();\n"],"names":["window","addEventListener","$","each","index","element","OC","Settings","setupGroupsSelect","change","ev","groups","val","JSON","stringify","OCP","AppConfig","setValue","attr","post","generateUrl","level","Log","reload","tooltip","placement","is","mode","success","deleteKey","toggleClass","checked","click","event","on","e","t","preventDefault","prop","msg","startAction","data","finishedAction","status","off","this","value","replace","savePublicShareDisclaimerText","$el","$target","target","PERMISSION_READ","_","debounce","options","finishedSuccess","error","finishedError","startSaving","isString","removeClass","addClass","changeEmailSettings","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","ajax","url","type","serialize","xhr","responseJSON","toggleEmailCredentials","document","getElementById","when","SetupChecks","checkWebDAV","checkWellKnownUrl","theme","docPlaceholderUrl","checkProviderUrl","getRootPath","checkSetup","checkGeneric","checkWOFF2Loading","filePath","checkDataProtected","then","check1","check2","check3","check4","check5","check6","check7","check8","check9","check10","check11","messages","concat","hasMessages","$errorsEl","find","$warningsEl","$infoEl","i","length","MESSAGE_TYPE_INFO","append","MESSAGE_TYPE_WARNING","MESSAGE_TYPE_ERROR","children"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"settings-legacy-admin.js?v=e5ae92977aa6fb6946a0","mappings":"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","sources":["webpack:///nextcloud/apps/settings/src/admin.js","webpack:///nextcloud/webpack/startup"],"sourcesContent":["window.addEventListener('DOMContentLoaded', () => {\n\t$('#excludedGroups,#linksExcludedGroups,#passwordsExcludedGroups').each(function(index, element) {\n\t\tOC.Settings.setupGroupsSelect($(element))\n\t\t$(element).change((ev) => {\n\t\t\tlet groups = ev.val || []\n\t\t\tgroups = JSON.stringify(groups)\n\t\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), groups)\n\t\t})\n\t})\n\n\t$('#loglevel').change(() => {\n\t\t$.post(OC.generateUrl('/settings/admin/log/level'), { level: $(this).val() }, () => {\n\t\t\tOC.Log.reload()\n\t\t})\n\t})\n\n\t$('#backgroundjobs span.crondate').tooltip({ placement: 'top' })\n\n\t$('#backgroundjobs input').change(() => {\n\t\tif ($(this).is(':checked')) {\n\t\t\tconst mode = $(this).val()\n\t\t\tif (mode === 'ajax' || mode === 'webcron' || mode === 'cron') {\n\t\t\t\tOCP.AppConfig.setValue('core', 'backgroundjobs_mode', mode, {\n\t\t\t\t\tsuccess: () => {\n\t\t\t\t\t\t// clear cron errors on background job mode change\n\t\t\t\t\t\tOCP.AppConfig.deleteKey('core', 'cronErrors')\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t})\n\n\t$('#shareAPIEnabled').change(() => {\n\t\t$('#shareAPI p:not(#enable)').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enableEncryption').change(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t})\n\n\t$('#reallyEnableEncryption').click(() => {\n\t\t$('#encryptionAPI div#EncryptionWarning').toggleClass('hidden')\n\t\t$('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden')\n\t\tOCP.AppConfig.setValue('core', 'encryption_enabled', 'yes')\n\t\t$('#enableEncryption').attr('disabled', 'disabled')\n\t})\n\n\t$('#startmigration').click((event) => {\n\t\t$(window).on('beforeunload.encryption', (e) => {\n\t\t\treturn t('settings', 'Migration in progress. Please wait until the migration is finished')\n\t\t})\n\t\tevent.preventDefault()\n\t\t$('#startmigration').prop('disabled', true)\n\t\tOC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …'))\n\t\t$.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data) {\n\t\t\tOC.msg.finishedAction('#startmigration_msg', data)\n\t\t\tif (data.status === 'success') {\n\t\t\t\t$('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden')\n\t\t\t\t$('#encryptionAPI div#migrationWarning').toggleClass('hidden')\n\t\t\t} else {\n\t\t\t\t$('#startmigration').prop('disabled', false)\n\t\t\t}\n\t\t\t$(window).off('beforeunload.encryption')\n\n\t\t})\n\t})\n\n\t$('#shareapiExpireAfterNDays').on('input', function() {\n\t\tthis.value = this.value.replace(/\\D/g, '')\n\t})\n\n\t$('#shareAPI input:not(.noJSAutoUpdate)').change(function() {\n\t\tlet value = $(this).val()\n\t\tif ($(this).attr('type') === 'checkbox') {\n\t\t\tif (this.checked) {\n\t\t\t\tvalue = 'yes'\n\t\t\t} else {\n\t\t\t\tvalue = 'no'\n\t\t\t}\n\t\t}\n\t\tOCP.AppConfig.setValue('core', $(this).attr('name'), value)\n\t})\n\n\t$('#shareapiDefaultExpireDate').change(function() {\n\t\t$('setDefaultExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultInternalExpireDate').change(function() {\n\t\t$('#setDefaultInternalExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiDefaultRemoteExpireDate').change(function() {\n\t\t$('#setDefaultRemoteExpireDate').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#enforceLinkPassword').change(function() {\n\t\t$('#selectPasswordsExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#publicShareDisclaimer').change(function() {\n\t\t$('#publicShareDisclaimerText').toggleClass('hidden', !this.checked)\n\t\tif (!this.checked) {\n\t\t\tsavePublicShareDisclaimerText('')\n\t\t}\n\t})\n\n\t$('#shareApiDefaultPermissionsSection input').change(function(ev) {\n\t\tconst $el = $('#shareApiDefaultPermissions')\n\t\tconst $target = $(ev.target)\n\n\t\tlet value = $el.val()\n\t\tif ($target.is(':checked')) {\n\t\t\tvalue = value | $target.val()\n\t\t} else {\n\t\t\tvalue = value & ~$target.val()\n\t\t}\n\n\t\t// always set read permission\n\t\tvalue |= OC.PERMISSION_READ\n\n\t\t// this will trigger the field's change event and will save it\n\t\t$el.val(value).change()\n\n\t\tev.preventDefault()\n\n\t\treturn false\n\t})\n\n\tconst savePublicShareDisclaimerText = _.debounce(function(value) {\n\t\tconst options = {\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: () => {\n\t\t\t\tOC.msg.finishedError('#publicShareDisclaimerStatus', t('settings', 'Not saved'))\n\t\t\t}\n\t\t}\n\n\t\tOC.msg.startSaving('#publicShareDisclaimerStatus')\n\t\tif (_.isString(value) && value !== '') {\n\t\t\tOCP.AppConfig.setValue('core', 'shareapi_public_link_disclaimertext', value, options)\n\t\t} else {\n\t\t\t$('#publicShareDisclaimerText').val('')\n\t\t\tOCP.AppConfig.deleteKey('core', 'shareapi_public_link_disclaimertext', options)\n\t\t}\n\t}, 500)\n\n\t$('#publicShareDisclaimerText').on('change, keyup', function() {\n\t\tsavePublicShareDisclaimerText(this.value)\n\t})\n\n\t$('#shareapi_allow_share_dialog_user_enumeration').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_to_group_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_to_phone_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_combinewarning_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapi_restrict_user_enumeration_full_match').on('change', function() {\n\t\t$('#shareapi_restrict_user_enumeration_full_match_userid_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_email_setting').toggleClass('hidden', !this.checked)\n\t\t$('#shareapi_restrict_user_enumeration_full_match_ignore_second_display_name_setting').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#allowLinks').change(function() {\n\t\t$('#publicLinkSettings').toggleClass('hidden', !this.checked)\n\t\t$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked))\n\t})\n\n\t$('#mail_smtpauth').change(function() {\n\t\tif (!this.checked) {\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t} else {\n\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t}\n\t})\n\n\t$('#mail_smtpmode').change(function() {\n\t\tif ($(this).val() !== 'smtp') {\n\t\t\t$('#setting_smtpauth').addClass('hidden')\n\t\t\t$('#setting_smtphost').addClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').addClass('hidden')\n\t\t\t$('#mail_smtpsecure').addClass('hidden')\n\t\t\t$('#mail_credentials').addClass('hidden')\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').removeClass('hidden')\n\t\t} else {\n\t\t\t$('#setting_smtpauth').removeClass('hidden')\n\t\t\t$('#setting_smtphost').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure_label').removeClass('hidden')\n\t\t\t$('#mail_smtpsecure').removeClass('hidden')\n\t\t\tif ($('#mail_smtpauth').is(':checked')) {\n\t\t\t\t$('#mail_credentials').removeClass('hidden')\n\t\t\t}\n\t\t\t$('#mail_sendmailmode_label, #mail_sendmailmode').addClass('hidden')\n\t\t}\n\t})\n\n\tconst changeEmailSettings = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(changeEmailSettings)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_general_settings_form').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\tconst toggleEmailCredentials = function() {\n\t\tif (OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(toggleEmailCredentials)\n\t\t\treturn\n\t\t}\n\n\t\tOC.msg.startSaving('#mail_settings_msg')\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailsettings/credentials'),\n\t\t\ttype: 'POST',\n\t\t\tdata: $('#mail_credentials_settings').serialize(),\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#mail_settings_msg', t('settings', 'Saved'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#mail_settings_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t}\n\n\t$('#mail_general_settings_form').change(changeEmailSettings)\n\t$('#mail_credentials_settings_submit').click(toggleEmailCredentials)\n\t$('#mail_smtppassword').click(() => {\n\t\tif (this.type === 'text' && this.value === '********') {\n\t\t\tthis.type = 'password'\n\t\t\tthis.value = ''\n\t\t}\n\t})\n\n\t$('#sendtestemail').click((event) => {\n\t\tevent.preventDefault()\n\t\tOC.msg.startAction('#sendtestmail_msg', t('settings', 'Sending…'))\n\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/settings/admin/mailtest'),\n\t\t\ttype: 'POST',\n\t\t\tsuccess: () => {\n\t\t\t\tOC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'))\n\t\t\t},\n\t\t\terror: (xhr) => {\n\t\t\t\tOC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON)\n\t\t\t}\n\t\t})\n\t})\n\n\t$('#allowGroupSharing').change(() => {\n\t\t$('#allowGroupSharing').toggleClass('hidden', !this.checked)\n\t})\n\n\t$('#shareapiExcludeGroups').change(() => {\n\t\t$('#selectExcludedGroups').toggleClass('hidden', !this.checked)\n\t})\n\n\tconst setupChecks = () => {\n\t\t// run setup checks then gather error messages\n\t\t$.when(\n\t\t\tOC.SetupChecks.checkWebDAV(),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/webfinger', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('GET', '/.well-known/nodeinfo', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true, [200, 404], true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/caldav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkWellKnownUrl('PROPFIND', '/.well-known/carddav', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocm-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkProviderUrl(OC.getRootPath() + '/ocs-provider/', OC.theme.docPlaceholderUrl, $('#postsetupchecks').data('check-wellknown') === true),\n\t\t\tOC.SetupChecks.checkSetup(),\n\t\t\tOC.SetupChecks.checkGeneric(),\n\t\t\tOC.SetupChecks.checkWOFF2Loading(OC.filePath('core', '', 'fonts/NotoSans-Regular-latin.woff2'), OC.theme.docPlaceholderUrl),\n\t\t\tOC.SetupChecks.checkDataProtected()\n\t\t).then((check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11) => {\n\t\t\tconst messages = [].concat(check1, check2, check3, check4, check5, check6, check7, check8, check9, check10, check11)\n\t\t\tconst $el = $('#postsetupchecks')\n\t\t\t$('#security-warning-state-loading').addClass('hidden')\n\n\t\t\tlet hasMessages = false\n\t\t\tconst $errorsEl = $el.find('.errors')\n\t\t\tconst $warningsEl = $el.find('.warnings')\n\t\t\tconst $infoEl = $el.find('.info')\n\n\t\t\tfor (let i = 0; i < messages.length; i++) {\n\t\t\t\tswitch (messages[i].type) {\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_INFO:\n\t\t\t\t\t$infoEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_WARNING:\n\t\t\t\t\t$warningsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t\tbreak\n\t\t\t\tcase OC.SetupChecks.MESSAGE_TYPE_ERROR:\n\t\t\t\tdefault:\n\t\t\t\t\t$errorsEl.append('<li>' + messages[i].msg + '</li>')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t$errorsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($warningsEl.find('li').length > 0) {\n\t\t\t\t$warningsEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\t\t\tif ($infoEl.find('li').length > 0) {\n\t\t\t\t$infoEl.removeClass('hidden')\n\t\t\t\thasMessages = true\n\t\t\t}\n\n\t\t\tif (hasMessages) {\n\t\t\t\t$('#postsetupchecks-hint').removeClass('hidden')\n\t\t\t\tif ($errorsEl.find('li').length > 0) {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-warning').removeClass('hidden')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst securityWarning = $('#security-warning')\n\t\t\t\tif (securityWarning.children('ul').children().length === 0) {\n\t\t\t\t\t$('#security-warning-state-ok').removeClass('hidden')\n\t\t\t\t} else {\n\t\t\t\t\t$('#security-warning-state-failure').removeClass('hidden')\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\tif (document.getElementById('security-warning') !== null) {\n\t\tsetupChecks()\n\t}\n})\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = {};\n__webpack_modules__[39583]();\n"],"names":["window","addEventListener","$","each","index","element","OC","Settings","setupGroupsSelect","change","ev","groups","val","JSON","stringify","OCP","AppConfig","setValue","attr","post","generateUrl","level","Log","reload","tooltip","placement","is","mode","success","deleteKey","toggleClass","checked","click","event","on","e","t","preventDefault","prop","msg","startAction","data","finishedAction","status","off","this","value","replace","savePublicShareDisclaimerText","$el","$target","target","PERMISSION_READ","_","debounce","options","finishedSuccess","error","finishedError","startSaving","isString","removeClass","addClass","changeEmailSettings","PasswordConfirmation","requiresPasswordConfirmation","requirePasswordConfirmation","ajax","url","type","serialize","xhr","responseJSON","toggleEmailCredentials","document","getElementById","when","SetupChecks","checkWebDAV","checkWellKnownUrl","theme","docPlaceholderUrl","checkProviderUrl","getRootPath","checkSetup","checkGeneric","checkWOFF2Loading","filePath","checkDataProtected","then","check1","check2","check3","check4","check5","check6","check7","check8","check9","check10","check11","messages","concat","hasMessages","$errorsEl","find","$warningsEl","$infoEl","i","length","MESSAGE_TYPE_INFO","append","MESSAGE_TYPE_WARNING","MESSAGE_TYPE_ERROR","children"],"sourceRoot":""} \ No newline at end of file
diff --git a/lib/private/Collaboration/Collaborators/MailPlugin.php b/lib/private/Collaboration/Collaborators/MailPlugin.php
index aae6f305981..8c2efce6f0d 100644
--- a/lib/private/Collaboration/Collaborators/MailPlugin.php
+++ b/lib/private/Collaboration/Collaborators/MailPlugin.php
@@ -51,6 +51,8 @@ class MailPlugin implements ISearchPlugin {
protected $shareeEnumerationPhone;
/* @var bool */
protected $shareeEnumerationFullMatch;
+ /* @var bool */
+ protected $shareeEnumerationFullMatchEmail;
/** @var IManager */
private $contactsManager;
@@ -88,12 +90,17 @@ class MailPlugin implements ISearchPlugin {
$this->shareeEnumerationInGroupOnly = $this->shareeEnumeration && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_group', 'no') === 'yes';
$this->shareeEnumerationPhone = $this->shareeEnumeration && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
$this->shareeEnumerationFullMatch = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match', 'yes') === 'yes';
+ $this->shareeEnumerationFullMatchEmail = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes') === 'yes';
}
/**
* {@inheritdoc}
*/
public function search($search, $limit, $offset, ISearchResult $searchResult) {
+ if ($this->shareeEnumerationFullMatch && !$this->shareeEnumerationFullMatchEmail) {
+ return false;
+ }
+
$currentUserId = $this->userSession->getUser()->getUID();
$result = $userResults = ['wide' => [], 'exact' => []];
diff --git a/lib/private/Collaboration/Collaborators/UserPlugin.php b/lib/private/Collaboration/Collaborators/UserPlugin.php
index af4d8b2ccca..12304a66ce9 100644
--- a/lib/private/Collaboration/Collaborators/UserPlugin.php
+++ b/lib/private/Collaboration/Collaborators/UserPlugin.php
@@ -57,6 +57,8 @@ class UserPlugin implements ISearchPlugin {
/* @var bool */
protected $shareeEnumerationFullMatchUserId;
/* @var bool */
+ protected $shareeEnumerationFullMatchEmail;
+ /* @var bool */
protected $shareeEnumerationFullMatchIgnoreSecondDisplayName;
/** @var IConfig */
@@ -92,6 +94,7 @@ class UserPlugin implements ISearchPlugin {
$this->shareeEnumerationPhone = $this->shareeEnumeration && $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_to_phone', 'no') === 'yes';
$this->shareeEnumerationFullMatch = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match', 'yes') === 'yes';
$this->shareeEnumerationFullMatchUserId = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_userid', 'yes') === 'yes';
+ $this->shareeEnumerationFullMatchEmail = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_email', 'yes') === 'yes';
$this->shareeEnumerationFullMatchIgnoreSecondDisplayName = $this->config->getAppValue('core', 'shareapi_restrict_user_enumeration_full_match_ignore_second_display_name', 'no') === 'yes';
}
@@ -185,7 +188,7 @@ class UserPlugin implements ISearchPlugin {
$lowerSearch !== '' && (strtolower($uid) === $lowerSearch ||
strtolower($userDisplayName) === $lowerSearch ||
($this->shareeEnumerationFullMatchIgnoreSecondDisplayName && trim(strtolower(preg_replace('/ \(.*\)$/', '', $userDisplayName))) === $lowerSearch) ||
- strtolower($userEmail ?? '') === $lowerSearch)
+ ($this->shareeEnumerationFullMatchEmail && strtolower($userEmail ?? '') === $lowerSearch))
) {
if (strtolower($uid) === $lowerSearch) {
$foundUserById = true;