2021-05-18 12:59:48 +02:00
|
|
|
import { useContext, useState } from 'react';
|
2021-02-24 11:03:18 +01:00
|
|
|
import PropTypes from 'prop-types';
|
2021-03-30 15:14:02 +02:00
|
|
|
import UsersList from './UsersList';
|
2021-02-24 11:03:18 +01:00
|
|
|
import AdminMenu from '../admin-menu';
|
2021-03-30 15:14:02 +02:00
|
|
|
import PageContent from '../../../component/common/PageContent/PageContent';
|
2021-04-21 09:35:13 +02:00
|
|
|
import AccessContext from '../../../contexts/AccessContext';
|
|
|
|
import ConditionallyRender from '../../../component/common/ConditionallyRender';
|
|
|
|
import { ADMIN } from '../../../component/AccessProvider/permissions';
|
|
|
|
import { Alert } from '@material-ui/lab';
|
2021-05-18 12:59:48 +02:00
|
|
|
import HeaderTitle from '../../../component/common/HeaderTitle';
|
|
|
|
import { Button } from '@material-ui/core';
|
2021-08-27 19:24:45 +02:00
|
|
|
import { useStyles } from './index.styles';
|
2021-02-24 11:03:18 +01:00
|
|
|
|
2021-05-04 09:59:42 +02:00
|
|
|
const UsersAdmin = ({ history }) => {
|
2021-04-21 09:35:13 +02:00
|
|
|
const { hasAccess } = useContext(AccessContext);
|
2021-05-18 12:59:48 +02:00
|
|
|
const [showDialog, setDialog] = useState(false);
|
2021-08-27 19:24:45 +02:00
|
|
|
const styles = useStyles();
|
2021-05-18 12:59:48 +02:00
|
|
|
|
|
|
|
const openDialog = e => {
|
|
|
|
e.preventDefault();
|
|
|
|
setDialog(true);
|
|
|
|
};
|
|
|
|
|
|
|
|
const closeDialog = () => {
|
|
|
|
setDialog(false);
|
|
|
|
};
|
2021-05-04 09:59:42 +02:00
|
|
|
|
2021-04-21 09:35:13 +02:00
|
|
|
return (
|
|
|
|
<div>
|
|
|
|
<AdminMenu history={history} />
|
2021-05-18 12:59:48 +02:00
|
|
|
<PageContent
|
2021-08-27 19:24:45 +02:00
|
|
|
bodyClass={styles.userListBody}
|
2021-05-18 12:59:48 +02:00
|
|
|
headerContent={
|
|
|
|
<HeaderTitle
|
|
|
|
title="Users"
|
|
|
|
actions={
|
|
|
|
<ConditionallyRender
|
|
|
|
condition={hasAccess(ADMIN)}
|
|
|
|
show={
|
|
|
|
<Button
|
|
|
|
variant="contained"
|
|
|
|
color="primary"
|
|
|
|
onClick={openDialog}
|
|
|
|
>
|
|
|
|
Add new user
|
|
|
|
</Button>
|
|
|
|
}
|
|
|
|
elseShow={
|
|
|
|
<small>
|
|
|
|
PS! Only admins can add/remove users.
|
|
|
|
</small>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
}
|
|
|
|
/>
|
|
|
|
}
|
|
|
|
>
|
2021-05-04 09:59:42 +02:00
|
|
|
<ConditionallyRender
|
|
|
|
condition={hasAccess(ADMIN)}
|
2021-05-18 12:59:48 +02:00
|
|
|
show={
|
|
|
|
<UsersList
|
|
|
|
openDialog={openDialog}
|
|
|
|
closeDialog={closeDialog}
|
|
|
|
showDialog={showDialog}
|
|
|
|
/>
|
|
|
|
}
|
2021-05-04 09:59:42 +02:00
|
|
|
elseShow={
|
|
|
|
<Alert severity="error">
|
2021-05-04 22:06:47 +02:00
|
|
|
You need instance admin to access this section.
|
2021-05-04 09:59:42 +02:00
|
|
|
</Alert>
|
|
|
|
}
|
|
|
|
/>
|
2021-04-21 09:35:13 +02:00
|
|
|
</PageContent>
|
|
|
|
</div>
|
|
|
|
);
|
2021-05-04 09:59:42 +02:00
|
|
|
};
|
2021-02-24 11:03:18 +01:00
|
|
|
|
2021-04-21 09:35:13 +02:00
|
|
|
UsersAdmin.propTypes = {
|
2021-02-24 11:03:18 +01:00
|
|
|
match: PropTypes.object.isRequired,
|
|
|
|
history: PropTypes.object.isRequired,
|
|
|
|
};
|
|
|
|
|
2021-04-21 09:35:13 +02:00
|
|
|
export default UsersAdmin;
|