import { WithStyles, withStyles } from '@material-ui/core/styles';
import { ArvadosTheme } from '~/common/custom-theme';
import { compose, Dispatch } from "redux";
-import { USER_MANAGE_DIALOG, openSetupShellAccount } from "~/store/users/users-actions";
-import { UserResource } from "~/models/user";
+import { USER_MANAGEMENT_DIALOG, openSetupShellAccount, loginAs } from "~/store/users/users-actions";
import { connect } from "react-redux";
type CssRules = 'spacing';
}));
interface UserManageDataProps {
- data: UserResource;
+ data: any;
}
interface UserManageActionProps {
openSetupShellAccount: (uuid: string) => void;
+ loginAs: (uuid: string) => void;
}
const mapDispatchToProps = (dispatch: Dispatch) => ({
- openSetupShellAccount: (uuid: string) => dispatch<any>(openSetupShellAccount(uuid))
+ openSetupShellAccount: (uuid: string) => dispatch<any>(openSetupShellAccount(uuid)),
+ loginAs: (uuid: string) => dispatch<any>(loginAs(uuid))
});
type UserManageProps = UserManageDataProps & UserManageActionProps & WithStyles<CssRules>;
export const UserManageDialog = compose(
connect(null, mapDispatchToProps),
- withDialog(USER_MANAGE_DIALOG),
+ withDialog(USER_MANAGEMENT_DIALOG),
styles)(
(props: WithDialogProps<UserManageProps> & UserManageProps) =>
<Dialog open={props.open}
onClose={props.closeDialog}
fullWidth
maxWidth="md">
- <DialogTitle>{`Manage - ${props.data.firstName} ${props.data.lastName}`}</DialogTitle>
- <DialogContent>
- <Typography variant="body2" 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.
+ {props.data &&
+ <span>
+ <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">
- {`LOG IN AS ${props.data.firstName} ${props.data.lastName}`}
- </Button>
- <Typography variant="body2" 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.
+ <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.firstName} ${props.data.lastName}`}
- </Button>
- </DialogContent>
+ <Button variant="contained" color="primary" onClick={() => props.openSetupShellAccount(props.data.uuid)}>
+ {`SETUP SHELL ACCOUNT FOR ${props.data.firstName} ${props.data.lastName}`}
+ </Button>
+ </DialogContent></span>}
+
<DialogActions>
<Button
- variant='flat'
+ variant='text'
color='primary'
onClick={props.closeDialog}>
Close