mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Remove non-existent display_name
field from the UserProfileUserInfo
interface. (#139091)
This commit is contained in:
parent
410ededfd5
commit
6817fad7ec
10 changed files with 75 additions and 46 deletions
|
@ -12,4 +12,10 @@ export type { UserProfilesPopoverProps } from './user_profiles_popover';
|
|||
export { UserAvatar } from './user_avatar';
|
||||
export { UserProfilesSelectable } from './user_profiles_selectable';
|
||||
export { UserProfilesPopover } from './user_profiles_popover';
|
||||
export type { UserProfile, UserProfileUserInfo, UserProfileAvatarData } from './user_profile';
|
||||
export { getUserDisplayName } from './user_profile';
|
||||
export type {
|
||||
UserProfile,
|
||||
UserProfileUserInfo,
|
||||
UserProfileAvatarData,
|
||||
GetUserDisplayNameParams,
|
||||
} from './user_profile';
|
||||
|
|
|
@ -58,10 +58,6 @@ export interface UserProfileUserInfo {
|
|||
* Optional full name of the user.
|
||||
*/
|
||||
full_name?: string;
|
||||
/**
|
||||
* Optional display name of the user.
|
||||
*/
|
||||
display_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -136,10 +132,29 @@ export function getUserAvatarInitials(
|
|||
}
|
||||
|
||||
/**
|
||||
* Determines the display name for the provided user profile.
|
||||
*
|
||||
* @param {UserProfileUserInfo} user User info
|
||||
* Set of available name-related fields to pick as display name.
|
||||
*/
|
||||
export function getUserDisplayName(user: Pick<UserProfileUserInfo, 'username' | 'full_name'>) {
|
||||
return user.full_name || user.username;
|
||||
export interface GetUserDisplayNameParams {
|
||||
/**
|
||||
* Username of the user.
|
||||
*/
|
||||
username: string;
|
||||
|
||||
/**
|
||||
* Optional email of the user.
|
||||
*/
|
||||
email?: string;
|
||||
|
||||
/**
|
||||
* Optional full name of the user.
|
||||
*/
|
||||
full_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the display name for the provided user information.
|
||||
* @param params Set of available user's name-related fields.
|
||||
*/
|
||||
export function getUserDisplayName(params: GetUserDisplayNameParams) {
|
||||
return params.full_name || params.email || params.username;
|
||||
}
|
||||
|
|
|
@ -27,4 +27,6 @@ export type {
|
|||
UserProfileUserInfoWithSecurity,
|
||||
ApiKey,
|
||||
UserRealm,
|
||||
GetUserDisplayNameParams,
|
||||
} from './model';
|
||||
export { getUserDisplayName } from './model';
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
export type { ApiKey, ApiKeyToInvalidate, ApiKeyRoleDescriptors } from './api_key';
|
||||
export type { User, EditUser } from './user';
|
||||
export type { User, EditUser, GetUserDisplayNameParams } from './user';
|
||||
export type {
|
||||
GetUserProfileResponse,
|
||||
UserProfile,
|
||||
|
|
|
@ -13,12 +13,22 @@ describe('#getUserDisplayName', () => {
|
|||
expect(
|
||||
getUserDisplayName({
|
||||
full_name: 'my full name',
|
||||
email: 'foo@elastic.co',
|
||||
username: 'foo',
|
||||
} as User)
|
||||
).toEqual('my full name');
|
||||
});
|
||||
|
||||
it(`uses the username when full name is not available`, () => {
|
||||
it(`uses the email when full name is not available available`, () => {
|
||||
expect(
|
||||
getUserDisplayName({
|
||||
email: 'foo@elastic.co',
|
||||
username: 'foo',
|
||||
} as User)
|
||||
).toEqual('foo@elastic.co');
|
||||
});
|
||||
|
||||
it(`uses the username when full name and email are not available`, () => {
|
||||
expect(
|
||||
getUserDisplayName({
|
||||
username: 'foo',
|
||||
|
|
|
@ -26,6 +26,30 @@ export interface EditUser extends User {
|
|||
confirmPassword?: string;
|
||||
}
|
||||
|
||||
export function getUserDisplayName(user: Pick<User, 'username' | 'full_name'>) {
|
||||
return user.full_name || user.username;
|
||||
/**
|
||||
* Set of available name-related fields to pick as display name.
|
||||
*/
|
||||
export interface GetUserDisplayNameParams {
|
||||
/**
|
||||
* Username of the user.
|
||||
*/
|
||||
username: string;
|
||||
|
||||
/**
|
||||
* Optional email of the user.
|
||||
*/
|
||||
email?: string;
|
||||
|
||||
/**
|
||||
* Optional full name of the user.
|
||||
*/
|
||||
full_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the display name for the provided user information.
|
||||
* @param params Set of available user's name-related fields.
|
||||
*/
|
||||
export function getUserDisplayName(params: GetUserDisplayNameParams) {
|
||||
return params.full_name || params.email || params.username;
|
||||
}
|
||||
|
|
|
@ -60,10 +60,6 @@ export interface UserProfileUserInfo {
|
|||
* Optional full name of the user.
|
||||
*/
|
||||
full_name?: string;
|
||||
/**
|
||||
* Optional display name of the user.
|
||||
*/
|
||||
display_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -76,8 +76,9 @@ export const EditUserPage: FunctionComponent<EditUserPageProps> = ({ username })
|
|||
|
||||
const isReservedUser = isUserReserved(user);
|
||||
const isDeprecatedUser = isUserDeprecated(user);
|
||||
const displayName = getUserDisplayName(user);
|
||||
|
||||
// We render email below the title already and don't need to duplicate it in the title itself.
|
||||
const title = getUserDisplayName({ full_name: user.full_name, username: user.username });
|
||||
return (
|
||||
<>
|
||||
<EuiPageHeader
|
||||
|
@ -85,11 +86,11 @@ export const EditUserPage: FunctionComponent<EditUserPageProps> = ({ username })
|
|||
pageTitle={
|
||||
<EuiFlexGroup alignItems="center" responsive={false}>
|
||||
<EuiFlexItem grow={false}>
|
||||
<EuiAvatar name={displayName!} size="xl" />
|
||||
<EuiAvatar name={getUserDisplayName(user)} size="xl" />
|
||||
</EuiFlexItem>
|
||||
<EuiFlexItem>
|
||||
<EuiTitle>
|
||||
<h1>{displayName}</h1>
|
||||
<h1>{title}</h1>
|
||||
</EuiTitle>
|
||||
<EuiText>{user.email}</EuiText>
|
||||
</EuiFlexItem>
|
||||
|
|
|
@ -72,7 +72,6 @@ describe('UserProfileService', () => {
|
|||
uid: 'UID',
|
||||
user: {
|
||||
username: 'user-1',
|
||||
display_name: 'display-name-1',
|
||||
full_name: 'full-name-1',
|
||||
realm_name: 'some-realm',
|
||||
realm_domain: 'some-domain',
|
||||
|
@ -201,7 +200,6 @@ describe('UserProfileService', () => {
|
|||
"labels": Object {},
|
||||
"uid": "UID",
|
||||
"user": Object {
|
||||
"display_name": "display-name-1",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-1",
|
||||
"realm_domain": "some-domain",
|
||||
|
@ -252,7 +250,6 @@ describe('UserProfileService', () => {
|
|||
"labels": Object {},
|
||||
"uid": "UID",
|
||||
"user": Object {
|
||||
"display_name": "display-name-1",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-1",
|
||||
"realm_domain": "some-domain",
|
||||
|
@ -334,7 +331,6 @@ describe('UserProfileService', () => {
|
|||
"labels": Object {},
|
||||
"uid": "some-profile-uid",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"realm_domain": "some-realm-domain",
|
||||
|
@ -366,7 +362,6 @@ describe('UserProfileService', () => {
|
|||
"labels": Object {},
|
||||
"uid": "some-profile-uid",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"realm_domain": "some-realm-domain",
|
||||
|
@ -431,7 +426,6 @@ describe('UserProfileService', () => {
|
|||
"labels": Object {},
|
||||
"uid": "some-profile-uid",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"realm_domain": "some-realm-domain",
|
||||
|
@ -491,7 +485,6 @@ describe('UserProfileService', () => {
|
|||
uid: 'UID-1',
|
||||
user: {
|
||||
username: 'user-1',
|
||||
display_name: 'display-name-1',
|
||||
full_name: 'full-name-1',
|
||||
realm_name: 'some-realm',
|
||||
realm_domain: 'some-domain',
|
||||
|
@ -502,7 +495,6 @@ describe('UserProfileService', () => {
|
|||
uid: 'UID-2',
|
||||
user: {
|
||||
username: 'user-2',
|
||||
display_name: 'display-name-2',
|
||||
full_name: 'full-name-2',
|
||||
realm_name: 'some-realm',
|
||||
realm_domain: 'some-domain',
|
||||
|
@ -521,7 +513,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": "display-name-1",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-1",
|
||||
"username": "user-1",
|
||||
|
@ -532,7 +523,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-2",
|
||||
"user": Object {
|
||||
"display_name": "display-name-2",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-2",
|
||||
"username": "user-2",
|
||||
|
@ -571,7 +561,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -621,7 +610,6 @@ describe('UserProfileService', () => {
|
|||
uid: 'UID-1',
|
||||
user: {
|
||||
username: 'user-1',
|
||||
display_name: 'display-name-1',
|
||||
full_name: 'full-name-1',
|
||||
realm_name: 'some-realm',
|
||||
realm_domain: 'some-domain',
|
||||
|
@ -632,7 +620,6 @@ describe('UserProfileService', () => {
|
|||
uid: 'UID-2',
|
||||
user: {
|
||||
username: 'user-2',
|
||||
display_name: 'display-name-2',
|
||||
full_name: 'full-name-2',
|
||||
realm_name: 'some-realm',
|
||||
realm_domain: 'some-domain',
|
||||
|
@ -651,7 +638,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": "display-name-1",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-1",
|
||||
"username": "user-1",
|
||||
|
@ -662,7 +648,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-2",
|
||||
"user": Object {
|
||||
"display_name": "display-name-2",
|
||||
"email": undefined,
|
||||
"full_name": "full-name-2",
|
||||
"username": "user-2",
|
||||
|
@ -703,7 +688,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -797,7 +781,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-0",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -810,7 +793,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -823,7 +805,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-8",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -903,7 +884,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-0",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -916,7 +896,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-20",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -1006,7 +985,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-0",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
@ -1019,7 +997,6 @@ describe('UserProfileService', () => {
|
|||
"enabled": true,
|
||||
"uid": "UID-1",
|
||||
"user": Object {
|
||||
"display_name": undefined,
|
||||
"email": "some@email",
|
||||
"full_name": undefined,
|
||||
"username": "some-username",
|
||||
|
|
|
@ -190,8 +190,6 @@ function parseUserProfile<D extends UserProfileData>(
|
|||
email: rawUserProfile.user.email ?? undefined,
|
||||
// @elastic/elasticsearch types support `null` values for the `full_name`, but we don't.
|
||||
full_name: rawUserProfile.user.full_name ?? undefined,
|
||||
// @ts-expect-error @elastic/elasticsearch SecurityUserProfileUser.display_name?: string
|
||||
display_name: rawUserProfile.user.display_name ?? undefined,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue