diff --git a/x-pack/plugins/cases/public/application.tsx b/x-pack/plugins/cases/public/application.tsx index a3aa1478c0d26..73d88c7a17993 100644 --- a/x-pack/plugins/cases/public/application.tsx +++ b/x-pack/plugins/cases/public/application.tsx @@ -65,6 +65,7 @@ export const App: React.FC<{ deps: RenderAppProps }> = ({ deps }) => { kibanaVersion, ...coreStart, ...pluginsStart, + securityService: coreStart.security, storage, }} > diff --git a/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts b/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts index 3d72e5ca552b9..e8c3e2291df6d 100644 --- a/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts +++ b/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts @@ -59,30 +59,15 @@ export const useCurrentUser = (): AuthenticatedElasticUser | null => { const toasts = useToasts(); - const { security } = useKibana().services; + const { securityService } = useKibana().services; const fetchUser = useCallback(() => { let didCancel = false; const fetchData = async () => { try { - if (security != null) { - const response = await security.authc.getCurrentUser(); - if (!didCancel) { - setUser(convertToCamelCase(response)); - } - } else { - setUser({ - username: i18n.translate('xpack.cases.getCurrentUser.unknownUser', { - defaultMessage: 'Unknown', - }), - email: '', - fullName: '', - roles: [], - enabled: false, - authenticationRealm: { name: '', type: '' }, - lookupRealm: { name: '', type: '' }, - authenticationProvider: '', - }); + const response = await securityService.authc.getCurrentUser(); + if (!didCancel) { + setUser(convertToCamelCase(response)); } } catch (error) { if (!didCancel) { @@ -102,7 +87,7 @@ export const useCurrentUser = (): AuthenticatedElasticUser | null => { return () => { didCancel = true; }; - }, [security, toasts]); + }, [securityService.authc, toasts]); useEffect(() => { fetchUser(); diff --git a/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.ts b/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.ts index 062e0e362f75c..ed919dbe7ebe3 100644 --- a/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.ts +++ b/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.ts @@ -15,4 +15,6 @@ import type { StartServices } from '../../../types'; const useTypedKibana = () => useKibana(); +// FIXME use a typed KibanaContextProvider that requires StartServices + export { KibanaContextProvider, useTypedKibana as useKibana, useUiSetting, useUiSetting$ }; diff --git a/x-pack/plugins/cases/public/types.ts b/x-pack/plugins/cases/public/types.ts index c857446ea042c..563391687bafd 100644 --- a/x-pack/plugins/cases/public/types.ts +++ b/x-pack/plugins/cases/public/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import type { CoreStart } from '@kbn/core/public'; +import type { CoreStart, SecurityServiceStart } from '@kbn/core/public'; import type { IHttpFetchError, ResponseErrorBody } from '@kbn/core-http-browser'; import type { ReactElement, PropsWithChildren } from 'react'; import type React from 'react'; @@ -86,6 +86,10 @@ export interface CasesPublicStartDependencies { licensing?: LicensingPluginStart; contentManagement: ContentManagementPublicStart; security: SecurityPluginStart; + /** + * Use the securityService field to ensure that APIs come from Core + */ + securityService: SecurityServiceStart; serverless?: ServerlessPluginStart; spaces?: SpacesPluginStart; storage: Storage; diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 0c30130edc267..f03709baf1831 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -11952,7 +11952,6 @@ "xpack.cases.features.deleteSubFeatureDetails": "Supprimer les cas et les commentaires", "xpack.cases.features.deleteSubFeatureName": "Supprimer", "xpack.cases.getCurrentUser.Error": "Erreur lors de l'obtention de l'utilisateur", - "xpack.cases.getCurrentUser.unknownUser": "Inconnu", "xpack.cases.header.badge.betaDesc": "Cette fonctionnalité est actuellement en version bêta. Si vous rencontrez des bugs ou si vous souhaitez apporter des commentaires, ouvrez un ticket de problème ou visitez notre forum de discussion.", "xpack.cases.header.badge.betaLabel": "Bêta", "xpack.cases.header.editableTitle.cancel": "Annuler", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 38cccd34c8e09..9f1ecdfdbf486 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -11932,7 +11932,6 @@ "xpack.cases.features.deleteSubFeatureDetails": "ケースとコメントを削除", "xpack.cases.features.deleteSubFeatureName": "削除", "xpack.cases.getCurrentUser.Error": "ユーザーの取得エラー", - "xpack.cases.getCurrentUser.unknownUser": "不明", "xpack.cases.header.badge.betaDesc": "現在、この機能はベータです。不具合を見つけた場合やご意見がある場合、サポートに問い合わせるか、またはディスカッションフォーラムにご報告ください。", "xpack.cases.header.badge.betaLabel": "ベータ", "xpack.cases.header.editableTitle.cancel": "キャンセル", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 99c3441cddc6b..bcc517158538b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -11956,7 +11956,6 @@ "xpack.cases.features.deleteSubFeatureDetails": "删除案例和注释", "xpack.cases.features.deleteSubFeatureName": "删除", "xpack.cases.getCurrentUser.Error": "获取用户时出错", - "xpack.cases.getCurrentUser.unknownUser": "未知", "xpack.cases.header.badge.betaDesc": "此功能当前为公测版。如果遇到任何错误或有任何反馈,请报告问题或访问我们的论坛。", "xpack.cases.header.badge.betaLabel": "公测版", "xpack.cases.header.editableTitle.cancel": "取消",