export const openUserManagement = (uuid: string) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
const { resources } = getState();
- const user = getResource<UserResource>(uuid)(resources);
- const clients = await services.apiClientAuthorizationService.list();
- const client = clients.items.find(it => it.ownerUuid === uuid);
- console.log(client);
- dispatch(dialogActions.OPEN_DIALOG({ id: USER_MANAGEMENT_DIALOG, data: { user, client } }));
+ const data = getResource<UserResource>(uuid)(resources);
+ dispatch(dialogActions.OPEN_DIALOG({ id: USER_MANAGEMENT_DIALOG, data }));
};
export const openSetupShellAccount = (uuid: string) =>
export const loginAs = (uuid: string) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- const client = await services.apiClientAuthorizationService.get(uuid);
+ const client = await services.apiClientAuthorizationService.create({ ownerUuid: uuid });
dispatch<any>(saveApiToken(client.apiToken));
dispatch<any>(getUserDetails()).then(() => {
location.reload();
import { ArvadosTheme } from '~/common/custom-theme';
import { compose, Dispatch } from "redux";
import { USER_MANAGEMENT_DIALOG, openSetupShellAccount, loginAs } from "~/store/users/users-actions";
-import { UserResource } from "~/models/user";
import { connect } from "react-redux";
type CssRules = 'spacing';
onClose={props.closeDialog}
fullWidth
maxWidth="md">
- {props.data.user &&
+ {props.data &&
<span>
- <DialogTitle>{`Manage - ${props.data.user.firstName} ${props.data.user.lastName}`}</DialogTitle>
+ <DialogTitle>{`Manage - ${props.data.firstName} ${props.data.lastName}`}</DialogTitle>
<DialogContent>
<Typography variant='body1' className={props.classes.spacing}>
As an admin, you can log in as this user. When you’ve finished, you will need to log out and log in again with your own account.
</Typography>
- <Button variant="contained" color="primary" onClick={() => props.loginAs(props.data.client.uuid)}>
- {`LOG IN AS ${props.data.user.firstName} ${props.data.user.lastName}`}
+ <Button variant="contained" color="primary" onClick={() => props.loginAs(props.data.uuid)}>
+ {`LOG IN AS ${props.data.firstName} ${props.data.lastName}`}
</Button>
<Typography variant='body1' className={props.classes.spacing}>
As an admin, you can setup a shell account for this user. The login name is automatically generated from the user's e-mail address.
</Typography>
<Button variant="contained" color="primary" onClick={() => props.openSetupShellAccount(props.data.uuid)}>
- {`SETUP SHELL ACCOUNT FOR ${props.data.user.firstName} ${props.data.user.lastName}`}
+ {`SETUP SHELL ACCOUNT FOR ${props.data.firstName} ${props.data.lastName}`}
</Button>
</DialogContent></span>}