diff options
3 files changed, 22 insertions, 4 deletions
diff --git a/apps/settings/lib/Settings/Personal/PersonalInfo.php b/apps/settings/lib/Settings/Personal/PersonalInfo.php index 656f949a4af..387843c5522 100644 --- a/apps/settings/lib/Settings/Personal/PersonalInfo.php +++ b/apps/settings/lib/Settings/Personal/PersonalInfo.php @@ -149,6 +149,7 @@ class PersonalInfo implements ISettings { $accountParameters = [ 'displayNameChangeSupported' => $user->canChangeDisplayName(), + 'lookupServerUploadEnabled' => $lookupServerUploadEnabled, ]; $this->initialStateService->provideInitialState('emails', $emails); diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue index 2bcc491323b..bcd5973f626 100644 --- a/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue +++ b/apps/settings/src/components/PersonalInfo/EmailSection/EmailSection.vue @@ -62,7 +62,7 @@ import { savePrimaryEmail, removeAdditionalEmail } from '../../../service/Person import { DEFAULT_ADDITIONAL_EMAIL_SCOPE } from '../../../constants/AccountPropertyConstants' const { additionalEmails, primaryEmail } = loadState('settings', 'emails', {}) -const accountParams = loadState('settings', 'accountParameters', {}) +const { displayNameChangeSupported } = loadState('settings', 'accountParameters', {}) export default { name: 'EmailSection', @@ -74,7 +74,6 @@ export default { data() { return { - accountParams, additionalEmails, primaryEmail, isValidForm: true, @@ -83,7 +82,7 @@ export default { computed: { isDisplayNameChangeSupported() { - return this.accountParams.displayNameChangeSupported + return displayNameChangeSupported }, primaryEmailValue: { diff --git a/apps/settings/src/components/PersonalInfo/EmailSection/FederationControl.vue b/apps/settings/src/components/PersonalInfo/EmailSection/FederationControl.vue index 87496a81160..6d48c157d6b 100644 --- a/apps/settings/src/components/PersonalInfo/EmailSection/FederationControl.vue +++ b/apps/settings/src/components/PersonalInfo/EmailSection/FederationControl.vue @@ -42,11 +42,14 @@ <script> import Actions from '@nextcloud/vue/dist/Components/Actions' import ActionButton from '@nextcloud/vue/dist/Components/ActionButton' +import { loadState } from '@nextcloud/initial-state' import { showError } from '@nextcloud/dialogs' import { SCOPE_ENUM, SCOPE_PROPERTY_ENUM } from '../../../constants/AccountPropertyConstants' import { savePrimaryEmailScope, saveAdditionalEmailScope } from '../../../service/PersonalInfoService' +const { lookupServerUploadEnabled } = loadState('settings', 'accountParameters', {}) + // TODO hardcoded for email, should abstract this for other sections const excludedScopes = [SCOPE_ENUM.PRIVATE] @@ -80,11 +83,26 @@ export default { data() { return { initialScope: this.scope, - federationScopes: Object.values(SCOPE_PROPERTY_ENUM).filter(({ name }) => !excludedScopes.includes(name)), } }, computed: { + federationScopes() { + return Object.values(SCOPE_PROPERTY_ENUM).filter(({ name }) => !this.unsupportedScopes.includes(name)) + }, + + unsupportedScopes() { + if (!lookupServerUploadEnabled) { + return [ + ...excludedScopes, + SCOPE_ENUM.FEDERATED, + SCOPE_ENUM.PUBLISHED, + ] + } + + return excludedScopes + }, + scopeIcon() { return SCOPE_PROPERTY_ENUM[this.scope].iconClass }, |