X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/09d4c8fd20d63b93cf4d14acf3de500e26a73b9b..099468843d687fdc8c6fbb0f0e3dc54f59d0de15:/src/store/sharing-dialog/sharing-dialog-actions.ts?ds=sidebyside diff --git a/src/store/sharing-dialog/sharing-dialog-actions.ts b/src/store/sharing-dialog/sharing-dialog-actions.ts index c998e767..fb34398e 100644 --- a/src/store/sharing-dialog/sharing-dialog-actions.ts +++ b/src/store/sharing-dialog/sharing-dialog-actions.ts @@ -49,8 +49,8 @@ export const connectSharingDialogProgress = withProgress(SHARING_DIALOG_NAME); export const saveSharingDialogChanges = async (dispatch: Dispatch, getState: () => RootState) => { dispatch(progressIndicatorActions.START_WORKING(SHARING_DIALOG_NAME)); - await dispatch(saveManagementChanges); await dispatch(savePublicPermissionChanges); + await dispatch(saveManagementChanges); await dispatch(sendInvitations); dispatch(reset(SHARING_INVITATION_FORM_NAME)); await dispatch(loadSharingDialog); @@ -236,7 +236,7 @@ const savePublicPermissionChanges = async (_: Dispatch, getState: () => RootStat // If visibility level changed, delete the previous link to public/all users. // On PRIVATE this link will be deleted by saveManagementChanges // so don't double delete (which would show an error dialog). - if (permissionUuid !== "" && visibility !== initialVisibility && visibility !== VisibilityLevel.PRIVATE) { + if (permissionUuid !== "" && visibility !== initialVisibility) { await permissionService.delete(permissionUuid); } if (visibility === VisibilityLevel.ALL_USERS) { @@ -272,10 +272,16 @@ const saveManagementChanges = async (_: Dispatch, getState: () => RootState, { p (a, b) => a.permissionUuid === b.permissionUuid ); - const deletions = cancelledPermissions.map(({ permissionUuid }) => - permissionService.delete(permissionUuid)); - const updates = permissions.map(update => - permissionService.update(update.permissionUuid, { name: update.permissions })); + const deletions = cancelledPermissions.map(async ({ permissionUuid }) => { + try { + await permissionService.delete(permissionUuid, false); + } catch (e) { } + }); + const updates = permissions.map(async update => { + try { + await permissionService.update(update.permissionUuid, { name: update.permissions }, false); + } catch (e) { } + }); await Promise.all([...deletions, ...updates]); } };