Merge pull request #33206 from nextcloud/enh/27869/consolidate

Consolidate account property getters
This commit is contained in:
Vincent Petry 2022-07-26 09:13:24 +02:00 committed by GitHub
commit 623d53315b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 44 additions and 122 deletions

View file

@ -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

View file

@ -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,
}
},
}

View file

@ -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)
},
},
}

View file

@ -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,
}
},
}

View file

@ -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,
}
},
}

View file

@ -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', {})

View file

@ -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,
}
},
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long