mirror of
https://github.com/nextcloud/server.git
synced 2026-04-21 06:08:46 -04:00
Merge pull request #33206 from nextcloud/enh/27869/consolidate
Consolidate account property getters
This commit is contained in:
commit
623d53315b
9 changed files with 44 additions and 122 deletions
|
|
@ -171,15 +171,15 @@ class PersonalInfo implements ISettings {
|
|||
|
||||
$personalInfoParameters = [
|
||||
'userId' => $uid,
|
||||
'displayNameMap' => $this->getDisplayNameMap($account),
|
||||
'displayName' => $this->getProperty($account, IAccountManager::PROPERTY_DISPLAYNAME),
|
||||
'emailMap' => $this->getEmailMap($account),
|
||||
'languageMap' => $this->getLanguageMap($user),
|
||||
'profileEnabledGlobally' => $this->profileManager->isProfileEnabled(),
|
||||
'profileEnabled' => $this->profileManager->isProfileEnabled($user),
|
||||
'organisationMap' => $this->getOrganisationMap($account),
|
||||
'roleMap' => $this->getRoleMap($account),
|
||||
'headlineMap' => $this->getHeadlineMap($account),
|
||||
'biographyMap' => $this->getBiographyMap($account),
|
||||
'organisation' => $this->getProperty($account, IAccountManager::PROPERTY_ORGANISATION),
|
||||
'role' => $this->getProperty($account, IAccountManager::PROPERTY_ROLE),
|
||||
'headline' => $this->getProperty($account, IAccountManager::PROPERTY_HEADLINE),
|
||||
'biography' => $this->getProperty($account, IAccountManager::PROPERTY_BIOGRAPHY),
|
||||
];
|
||||
|
||||
$accountParameters = [
|
||||
|
|
@ -208,75 +208,17 @@ class PersonalInfo implements ISettings {
|
|||
}
|
||||
|
||||
/**
|
||||
* returns the primary biography in an
|
||||
* returns the property data in an
|
||||
* associative array
|
||||
*/
|
||||
private function getBiographyMap(IAccount $account): array {
|
||||
$primaryBiography = [
|
||||
'value' => $account->getProperty(IAccountManager::PROPERTY_BIOGRAPHY)->getValue(),
|
||||
'scope' => $account->getProperty(IAccountManager::PROPERTY_BIOGRAPHY)->getScope(),
|
||||
'verified' => $account->getProperty(IAccountManager::PROPERTY_BIOGRAPHY)->getVerified(),
|
||||
private function getProperty(IAccount $account, string $property): array {
|
||||
$property = [
|
||||
'value' => $account->getProperty($property)->getValue(),
|
||||
'scope' => $account->getProperty($property)->getScope(),
|
||||
'verified' => $account->getProperty($property)->getVerified(),
|
||||
];
|
||||
|
||||
$biographyMap = [
|
||||
'primaryBiography' => $primaryBiography,
|
||||
];
|
||||
|
||||
return $biographyMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the primary organisation in an
|
||||
* associative array
|
||||
*/
|
||||
private function getOrganisationMap(IAccount $account): array {
|
||||
$primaryOrganisation = [
|
||||
'value' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getValue(),
|
||||
'scope' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getScope(),
|
||||
'verified' => $account->getProperty(IAccountManager::PROPERTY_ORGANISATION)->getVerified(),
|
||||
];
|
||||
|
||||
$organisationMap = [
|
||||
'primaryOrganisation' => $primaryOrganisation,
|
||||
];
|
||||
|
||||
return $organisationMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the primary headline in an
|
||||
* associative array
|
||||
*/
|
||||
private function getHeadlineMap(IAccount $account): array {
|
||||
$primaryHeadline = [
|
||||
'value' => $account->getProperty(IAccountManager::PROPERTY_HEADLINE)->getValue(),
|
||||
'scope' => $account->getProperty(IAccountManager::PROPERTY_HEADLINE)->getScope(),
|
||||
'verified' => $account->getProperty(IAccountManager::PROPERTY_HEADLINE)->getVerified(),
|
||||
];
|
||||
|
||||
$headlineMap = [
|
||||
'primaryHeadline' => $primaryHeadline,
|
||||
];
|
||||
|
||||
return $headlineMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the primary role in an
|
||||
* associative array
|
||||
*/
|
||||
private function getRoleMap(IAccount $account): array {
|
||||
$primaryRole = [
|
||||
'value' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getValue(),
|
||||
'scope' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getScope(),
|
||||
'verified' => $account->getProperty(IAccountManager::PROPERTY_ROLE)->getVerified(),
|
||||
];
|
||||
|
||||
$roleMap = [
|
||||
'primaryRole' => $primaryRole,
|
||||
];
|
||||
|
||||
return $roleMap;
|
||||
return $property;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -314,26 +256,6 @@ class PersonalInfo implements ISettings {
|
|||
return $groups;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the primary display name in an
|
||||
* associative array
|
||||
*
|
||||
* NOTE may be extended to provide additional display names (i.e. aliases) in the future
|
||||
*/
|
||||
private function getDisplayNameMap(IAccount $account): array {
|
||||
$primaryDisplayName = [
|
||||
'value' => $account->getProperty(IAccountManager::PROPERTY_DISPLAYNAME)->getValue(),
|
||||
'scope' => $account->getProperty(IAccountManager::PROPERTY_DISPLAYNAME)->getScope(),
|
||||
'verified' => $account->getProperty(IAccountManager::PROPERTY_DISPLAYNAME)->getVerified(),
|
||||
];
|
||||
|
||||
$displayNameMap = [
|
||||
'primaryDisplayName' => $primaryDisplayName,
|
||||
];
|
||||
|
||||
return $displayNameMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the primary email and additional emails in an
|
||||
* associative array
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
<section>
|
||||
<HeaderBar :account-property="accountProperty"
|
||||
label-for="biography"
|
||||
:scope.sync="primaryBiography.scope" />
|
||||
:scope.sync="biography.scope" />
|
||||
|
||||
<Biography :biography.sync="primaryBiography.value"
|
||||
:scope.sync="primaryBiography.scope" />
|
||||
<Biography :biography.sync="biography.value"
|
||||
:scope.sync="biography.scope" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ import HeaderBar from '../shared/HeaderBar'
|
|||
|
||||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
|
||||
const { biographyMap: { primaryBiography } } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { biography } = loadState('settings', 'personalInfoParameters', {})
|
||||
|
||||
export default {
|
||||
name: 'BiographySection',
|
||||
|
|
@ -52,7 +52,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.BIOGRAPHY,
|
||||
primaryBiography,
|
||||
biography,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,15 +26,15 @@
|
|||
label-for="displayname"
|
||||
:is-editable="displayNameChangeSupported"
|
||||
:is-valid-section="isValidSection"
|
||||
:scope.sync="primaryDisplayName.scope" />
|
||||
:scope.sync="displayName.scope" />
|
||||
|
||||
<template v-if="displayNameChangeSupported">
|
||||
<DisplayName :display-name.sync="primaryDisplayName.value"
|
||||
:scope.sync="primaryDisplayName.scope" />
|
||||
<DisplayName :display-name.sync="displayName.value"
|
||||
:scope.sync="displayName.scope" />
|
||||
</template>
|
||||
|
||||
<span v-else>
|
||||
{{ primaryDisplayName.value || t('settings', 'No full name set') }}
|
||||
{{ displayName.value || t('settings', 'No full name set') }}
|
||||
</span>
|
||||
</section>
|
||||
</template>
|
||||
|
|
@ -48,7 +48,7 @@ import HeaderBar from '../shared/HeaderBar'
|
|||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
import { validateStringInput } from '../../../utils/validate'
|
||||
|
||||
const { displayNameMap: { primaryDisplayName } } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { displayName } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { displayNameChangeSupported } = loadState('settings', 'accountParameters', {})
|
||||
|
||||
export default {
|
||||
|
|
@ -63,13 +63,13 @@ export default {
|
|||
return {
|
||||
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.DISPLAYNAME,
|
||||
displayNameChangeSupported,
|
||||
primaryDisplayName,
|
||||
displayName,
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
isValidSection() {
|
||||
return validateStringInput(this.primaryDisplayName.value)
|
||||
return validateStringInput(this.displayName.value)
|
||||
},
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
<section>
|
||||
<HeaderBar :account-property="accountProperty"
|
||||
label-for="headline"
|
||||
:scope.sync="primaryHeadline.scope" />
|
||||
:scope.sync="headline.scope" />
|
||||
|
||||
<Headline :headline.sync="primaryHeadline.value"
|
||||
:scope.sync="primaryHeadline.scope" />
|
||||
<Headline :headline.sync="headline.value"
|
||||
:scope.sync="headline.scope" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ import HeaderBar from '../shared/HeaderBar'
|
|||
|
||||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
|
||||
const { headlineMap: { primaryHeadline } } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { headline } = loadState('settings', 'personalInfoParameters', {})
|
||||
|
||||
export default {
|
||||
name: 'HeadlineSection',
|
||||
|
|
@ -52,7 +52,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.HEADLINE,
|
||||
primaryHeadline,
|
||||
headline,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
<section>
|
||||
<HeaderBar :account-property="accountProperty"
|
||||
label-for="organisation"
|
||||
:scope.sync="primaryOrganisation.scope" />
|
||||
:scope.sync="organisation.scope" />
|
||||
|
||||
<Organisation :organisation.sync="primaryOrganisation.value"
|
||||
:scope.sync="primaryOrganisation.scope" />
|
||||
<Organisation :organisation.sync="organisation.value"
|
||||
:scope.sync="organisation.scope" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ import HeaderBar from '../shared/HeaderBar'
|
|||
|
||||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
|
||||
const { organisationMap: { primaryOrganisation } } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { organisation } = loadState('settings', 'personalInfoParameters', {})
|
||||
|
||||
export default {
|
||||
name: 'OrganisationSection',
|
||||
|
|
@ -52,7 +52,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.ORGANISATION,
|
||||
primaryOrganisation,
|
||||
organisation,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ import ProfilePreviewCard from './ProfilePreviewCard'
|
|||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
|
||||
const {
|
||||
organisationMap: { primaryOrganisation: { value: organisation } },
|
||||
displayNameMap: { primaryDisplayName: { value: displayName } },
|
||||
organisation: { value: organisation },
|
||||
displayName: { value: displayName },
|
||||
profileEnabled,
|
||||
userId,
|
||||
} = loadState('settings', 'personalInfoParameters', {})
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@
|
|||
<section>
|
||||
<HeaderBar :account-property="accountProperty"
|
||||
label-for="role"
|
||||
:scope.sync="primaryRole.scope" />
|
||||
:scope.sync="role.scope" />
|
||||
|
||||
<Role :role.sync="primaryRole.value"
|
||||
:scope.sync="primaryRole.scope" />
|
||||
<Role :role.sync="role.value"
|
||||
:scope.sync="role.scope" />
|
||||
</section>
|
||||
</template>
|
||||
|
||||
|
|
@ -39,7 +39,7 @@ import HeaderBar from '../shared/HeaderBar'
|
|||
|
||||
import { ACCOUNT_PROPERTY_READABLE_ENUM } from '../../../constants/AccountPropertyConstants'
|
||||
|
||||
const { roleMap: { primaryRole } } = loadState('settings', 'personalInfoParameters', {})
|
||||
const { role } = loadState('settings', 'personalInfoParameters', {})
|
||||
|
||||
export default {
|
||||
name: 'RoleSection',
|
||||
|
|
@ -52,7 +52,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
accountProperty: ACCOUNT_PROPERTY_READABLE_ENUM.ROLE,
|
||||
primaryRole,
|
||||
role,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
4
dist/settings-vue-settings-personal-info.js
vendored
4
dist/settings-vue-settings-personal-info.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue