-export const setupUserVM = (setupData: AddLoginFormData) =>
- async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch(startSubmit(SETUP_SHELL_ACCOUNT_DIALOG));
- try {
- const userResource = await services.userService.get(setupData.user.uuid);
-
- const resources = await services.userService.setup(setupData.user.uuid);
- dispatch(updateResources(resources.items));
-
- const permission = await services.permissionService.create({
- headUuid: setupData.vmUuid,
- tailUuid: userResource.uuid,
- name: PermissionLevel.CAN_LOGIN,
- properties: {
- username: userResource.username,
- groups: setupData.groups,
- }
- });
- dispatch(updateResources([permission]));
-
- 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 }));
- } catch (e) {
- dispatch(stopSubmit(SETUP_SHELL_ACCOUNT_DIALOG));
- dispatch(snackbarActions.OPEN_SNACKBAR({ message: e.message, hideDuration: 2000, kind: SnackbarKind.ERROR }));
- }
- };
-