X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/72ee613468c6dee53b98ed1469ce9781a942dbe9..ecfd85a34f5852c160a25ab61bc5c38059927c56:/src/store/users/users-actions.ts diff --git a/src/store/users/users-actions.ts b/src/store/users/users-actions.ts index 26c942d6..7b12fe75 100644 --- a/src/store/users/users-actions.ts +++ b/src/store/users/users-actions.ts @@ -27,6 +27,12 @@ export interface UserCreateFormDialogData { groupVirtualMachine: string; } +export interface SetupShellAccountFormDialogData { + email: string; + virtualMachineName: string; + groupVirtualMachine: string; +} + export const openUserAttributes = (uuid: string) => (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const { resources } = getState(); @@ -65,7 +71,7 @@ export const loginAs = (uuid: string) => export const openUserCreateDialog = () => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const userUuid = getUserUuid(getState()); - if (!userUuid) { return; } + if (!userUuid) { return; } const user = await services.userService.get(userUuid!); const virtualMachines = await services.virtualMachineService.list(); dispatch(reset(USER_CREATE_FORM_NAME)); @@ -94,6 +100,23 @@ export const createUser = (user: UserCreateFormDialogData) => } }; + +export const setupUserVM = (setupData: SetupShellAccountFormDialogData) => + async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { + dispatch(startSubmit(USER_CREATE_FORM_NAME)); + try { + // TODO: make correct API call + // const setupResult = await services.userService.setup({ ...setupData }); + dispatch(dialogActions.CLOSE_DIALOG({ id: SETUP_SHELL_ACCOUNT_DIALOG })); + dispatch(reset(SETUP_SHELL_ACCOUNT_DIALOG)); + dispatch(snackbarActions.OPEN_SNACKBAR({ message: "User has been added to VM.", hideDuration: 2000, kind: SnackbarKind.SUCCESS })); + dispatch(loadUsersPanel()); + dispatch(userBindedActions.REQUEST_ITEMS()); + } catch (e) { + return; + } + }; + export const openUserPanel = () => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const user = getState().auth.user;