delete user

This commit is contained in:
tejusk2 2022-08-17 20:30:01 -05:00
commit 0e149a5ab3
3 changed files with 37 additions and 3 deletions

View file

@ -1,4 +1,5 @@
import {
Alert,
Box,
Button,
Grid,
@ -16,13 +17,16 @@ import { Link, useNavigate } from 'react-router-dom';
import { ListAnswer, ListQuestion, LoadingBar } from 'components';
import { useUser } from 'contexts';
import { PaginatedList } from 'controllers';
import { getUserAnswers, getUserQuestions } from 'services/userServices';
import { deleteUser, getUserAnswers, getUserQuestions } from 'services/userServices';
export default function Dashboard() {
const navigate = useNavigate();
const [current, setCurrent] = useState('questions');
const [loading, setLoading] = useState(true);
const [confirmDelete, setConfirmDelete] = useState(false)
const {
userData: { email, level, points, username },
} = useUser();
@ -57,6 +61,21 @@ export default function Dashboard() {
if (!error) return questions;
};
const deleteCurrentUser = () => {
if(confirmDelete){
deleteUser();
navigate('/users/login')
setConfirmDelete(false);
}else{
setConfirmDelete(true);
setTimeout(cancelDelete, 30000)
}
}
function cancelDelete(){
setConfirmDelete(false)
}
return (
<>
<Helmet>
@ -83,6 +102,7 @@ export default function Dashboard() {
)}
</Grid>
<Grid item sm={8} md={10}>
{confirmDelete && <Alert variant = "warning">Click delete button again to confirm delete, cancelling in 30 seconds</Alert>}
<Typography>Username: {username}</Typography>
<Typography>Email: {email}</Typography>
<Typography>Level: {level}</Typography>
@ -106,6 +126,17 @@ export default function Dashboard() {
>
Update User Information
</Button>
<Button
color='warning'
onClick = {deleteCurrentUser}
sx={{ margin: '0 1vh' }}
variant='outlined'
fullWidth
>
Delete User
</Button>
<ToggleButtonGroup
value={current}
exclusive

View file

@ -25,6 +25,8 @@ const getUserQuestions = async () => callUsersAPI('get', `/questions`);
const getUserAnswers = async () => callUsersAPI('get', `/answers`);
const deleteUser = async () => callUsersAPI('delete',`/delete`)
const incrementLoginAttempts = () => {
const { loginAttempts } = getLoginAttempts();
Cookies.set('loginAttempts', loginAttempts + 1);
@ -80,4 +82,5 @@ export {
updateUser,
requestReset,
resetPassword,
deleteUser
};

View file

@ -43,8 +43,8 @@ mongoose.connection.on(
console.error.bind(console, '[ERROR]: MongoDB connection error - ')
);
cron.schedule('*/30 * * * * *', refreshQuestions);
cron.schedule('*/2 * * * *', refreshUsers);
//cron.schedule('*/30 * * * * *', refreshQuestions);
//cron.schedule('*/2 * * * *', refreshUsers);
server.listen(port, console.log(`Listening on port: ${port}`));
server.on('error', onError);