$accountParameters = [
'displayNameChangeSupported' => $user->canChangeDisplayName(),
+ 'lookupServerUploadEnabled' => $lookupServerUploadEnabled,
];
$this->initialStateService->provideInitialState('emails', $emails);
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',
data() {
return {
- accountParams,
additionalEmails,
primaryEmail,
isValidForm: true,
computed: {
isDisplayNameChangeSupported() {
- return this.accountParams.displayNameChangeSupported
+ return displayNameChangeSupported
},
primaryEmailValue: {
<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]
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
},