From 45663dba0ac87e573d7c4f147830b778fd7322c7 Mon Sep 17 00:00:00 2001 From: vitshev Date: Fri, 31 Jan 2025 12:36:59 +0100 Subject: [PATCH] fix(ACL): ui should display an error when user has no permission to set acl [#938] --- packages/ui/src/ui/store/actions/acl.ts | 67 ++++++++++++------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/packages/ui/src/ui/store/actions/acl.ts b/packages/ui/src/ui/store/actions/acl.ts index 3cdce2c57..bc20cfbb7 100644 --- a/packages/ui/src/ui/store/actions/acl.ts +++ b/packages/ui/src/ui/store/actions/acl.ts @@ -287,44 +287,43 @@ export function requestPermissions( const poolTree = idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined; - try { - const requestPermissionsPath = await getPathToCheckPermissions( - idmKind, - values.path, - poolTree, - ); + const requestPermissionsPath = await getPathToCheckPermissions( + idmKind, + values.path, + poolTree, + ); - //cluster, path, roles, comment, columns - return UIFactory.getAclApi() - .requestPermissions({ - cluster, - path: values.path, - sysPath: requestPermissionsPath, - roles, - roles_grouped: rolesGroupedBySubject.map(convertFromUIPermissions), - comment: values.comment ?? '', - kind: idmKind, - poolTree, - }) - .then(() => { - dispatch({ - type: REQUEST_PERMISSION.SUCCESS, - idmKind, - }); - }); - } catch (error: any) { - if (isCancelled(error)) { - dispatch({type: REQUEST_PERMISSION.CANCELLED, idmKind}); - return undefined; - } else { + //cluster, path, roles, comment, columns + return UIFactory.getAclApi() + .requestPermissions({ + cluster, + path: values.path, + sysPath: requestPermissionsPath, + roles, + roles_grouped: rolesGroupedBySubject.map(convertFromUIPermissions), + comment: values.comment ?? '', + kind: idmKind, + poolTree, + }) + .then(() => { dispatch({ - type: REQUEST_PERMISSION.FAILURE, - data: error, + type: REQUEST_PERMISSION.SUCCESS, idmKind, }); - return Promise.reject(error); - } - } + }) + .catch((error: any) => { + if (isCancelled(error)) { + dispatch({type: REQUEST_PERMISSION.CANCELLED, idmKind}); + return undefined; + } else { + dispatch({ + type: REQUEST_PERMISSION.FAILURE, + data: error, + idmKind, + }); + return Promise.reject(error); + } + }); }; }