From d075a2157b99567156f1d3a8b52515be87406c95 Mon Sep 17 00:00:00 2001 From: Leo6Leo <36619969+Leo6Leo@users.noreply.github.com> Date: Tue, 21 Apr 2026 15:54:30 -0400 Subject: [PATCH 1/3] OCPBUGS-84041: Fix template placeholder {{name}} not resolved and runtime error on Group details page Fix impersonate action to pass group name as a named i18n parameter instead of the whole metadata object. Add optional chaining to guard against undefined metadata. Validate user input in AddUsersModal before submitting. --- frontend/public/components/group.tsx | 6 +++--- .../components/modals/add-users-modal.tsx | 19 +++++++++++++------ frontend/public/locales/en/public.json | 1 + 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/frontend/public/components/group.tsx b/frontend/public/components/group.tsx index fd51df9f4ff..c4392f65f44 100644 --- a/frontend/public/components/group.tsx +++ b/frontend/public/components/group.tsx @@ -57,9 +57,9 @@ const getImpersonateAction = ( startImpersonate: StartImpersonate, navigate: NavigateFunction, ): KebabAction => (kind: K8sKind, group: GroupKind) => ({ - label: i18next.t('public~Impersonate Group {{name}}', group.metadata), + label: i18next.t('public~Impersonate Group {{name}}', { name: group?.metadata?.name }), callback: () => { - startImpersonate('Group', group.metadata.name); + startImpersonate('Group', group?.metadata?.name); navigate(window.SERVER_FLAGS.basePath); }, // Must use API group authorization.k8s.io, NOT user.openshift.io @@ -67,7 +67,7 @@ const getImpersonateAction = ( accessReview: { group: 'authorization.k8s.io', resource: 'groups', - name: group.metadata.name, + name: group?.metadata?.name, verb: 'impersonate', }, }); diff --git a/frontend/public/components/modals/add-users-modal.tsx b/frontend/public/components/modals/add-users-modal.tsx index 167b31bb680..a87be6cea69 100644 --- a/frontend/public/components/modals/add-users-modal.tsx +++ b/frontend/public/components/modals/add-users-modal.tsx @@ -1,4 +1,3 @@ -import * as _ from 'lodash-es'; import * as React from 'react'; import { GroupModel } from '../../models'; @@ -17,22 +16,30 @@ import { usePromiseHandler } from '@console/shared/src/hooks/promise-handler'; export const AddUsersModal = (props: AddUsersModalProps) => { const [values, setValues] = React.useState(['']); const [handlePromise, inProgress, errorMessage] = usePromiseHandler(); + const { t } = useTranslation(); const submit: React.FormEventHandler = (e) => { e.preventDefault(); - // Append to an existing array, but handle the special case when the array is null. + if (!props.group?.metadata?.name) { + return; + } + const validUsers = values.map((v) => v.trim()).filter((v) => v.length > 0); + if (validUsers.length === 0) { + return; + } const patch = props.group.users - ? _.map(values, (value: string) => ({ op: 'add', path: '/users/-', value })) - : [{ op: 'add', path: '/users', value: values }]; + ? validUsers.map((value: string) => ({ op: 'add', path: '/users/-', value })) + : [{ op: 'add', path: '/users', value: validUsers }]; handlePromise(k8sPatch(GroupModel, props.group, patch)).then(() => props.close()); }; - const { t } = useTranslation(); return (
{t('public~Add Users')} -

{t('public~Add new Users to Group {{name}}.', props.group.metadata)}

+

+ {t('public~Add new users to group {{name}}', { name: props.group?.metadata?.name })} +

Date: Thu, 23 Apr 2026 14:37:46 -0400 Subject: [PATCH 2/3] i18n --- frontend/public/locales/en/public.json | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/public/locales/en/public.json b/frontend/public/locales/en/public.json index be4b9e1145c..d51587c29c7 100644 --- a/frontend/public/locales/en/public.json +++ b/frontend/public/locales/en/public.json @@ -830,7 +830,6 @@ "Add secret as": "Add secret as", "Prefix": "Prefix", "Volume": "Volume", - "Add new Users to Group {{name}}.": "Add new Users to Group {{name}}.", "Add new users to group {{name}}": "Add new users to group {{name}}", "Edit routing configuration": "Edit routing configuration", "Group by": "Group by", From a02bf5f4ca0a58aa2c1ca33562a94ae1b8b740d8 Mon Sep 17 00:00:00 2001 From: Leo6Leo <36619969+Leo6Leo@users.noreply.github.com> Date: Thu, 23 Apr 2026 16:01:14 -0400 Subject: [PATCH 3/3] fix: prettier formatting in add-users-modal --- frontend/public/components/modals/add-users-modal.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/public/components/modals/add-users-modal.tsx b/frontend/public/components/modals/add-users-modal.tsx index a87be6cea69..96fa2d34ecf 100644 --- a/frontend/public/components/modals/add-users-modal.tsx +++ b/frontend/public/components/modals/add-users-modal.tsx @@ -37,9 +37,7 @@ export const AddUsersModal = (props: AddUsersModalProps) => { {t('public~Add Users')} -

- {t('public~Add new users to group {{name}}', { name: props.group?.metadata?.name })} -

+

{t('public~Add new users to group {{name}}', { name: props.group?.metadata?.name })}