diff --git a/src/pages/PasswordReset.tsx b/src/pages/PasswordReset.tsx
index 06b9198c..657f9eeb 100644
--- a/src/pages/PasswordReset.tsx
+++ b/src/pages/PasswordReset.tsx
@@ -1,5 +1,4 @@
-import React, { useState } from 'react';
-import {useNavigate, useSearchParams} from 'react-router';
+import { apiRoutes } from '@/apiRoutes';
import {
Box, Button,
Center,
@@ -10,12 +9,13 @@ import {
Stack,
Title, useComputedColorScheme,
} from '@mantine/core';
-import axios from 'axios';
import { notifications } from '@mantine/notifications';
import { IconCheck, IconX } from '@tabler/icons-react';
-import Logo from '../images/ots-logo.png';
+import axios from 'axios';
+import { useState } from 'react';
+import { useNavigate, useSearchParams } from 'react-router';
import { Header } from '../components/Header';
-import { apiRoutes } from '@/apiRoutes';
+import Logo from '../images/ots-logo.png';
export default function PasswordReset() {
const [searchParams, setSearchParams] = useSearchParams();
@@ -34,11 +34,15 @@ export default function PasswordReset() {
).then(r => {
if (r.status === 200) {
notifications.show({
- message: 'Your password has been changed',
+ message: 'Your password has been changed. You will be logged out.',
color: 'green',
icon: ,
});
navigate('/login');
+ axios.post(apiRoutes.logout).finally(() => {
+ localStorage.clear();
+ navigate('/login');
+ });
}
}).catch(err => {
notifications.show({
diff --git a/src/pages/Users.tsx b/src/pages/Users.tsx
index bedf34c1..fda1fa9e 100644
--- a/src/pages/Users.tsx
+++ b/src/pages/Users.tsx
@@ -10,11 +10,12 @@ import {
TableData,
TextInput, useComputedColorScheme,
} from '@mantine/core';
-import React, { useEffect, useState } from 'react';
-import { IconCheck, IconUserPlus, IconX } from '@tabler/icons-react';
import { notifications } from '@mantine/notifications';
-import axios from '../axios_config';
+import { IconCheck, IconUserPlus, IconX } from '@tabler/icons-react';
+import { useEffect, useState } from 'react';
+import { useNavigate } from 'react-router';
import { apiRoutes } from '../apiRoutes';
+import axios from '../axios_config';
export default function Users() {
const [users, setUsers] = useState({
@@ -32,6 +33,7 @@ export default function Users() {
const [confirm_password, setConfirmPassword] = useState('');
const [role, setRole] = useState('');
const computedColorScheme = useComputedColorScheme('light', { getInitialValueInEffect: true });
+ const navigate = useNavigate();
function getUsers() {
axios.get(
@@ -215,10 +217,17 @@ export default function Users() {
getUsers();
setShowResetPassword(false);
setPassword('');
+ const isSelf = username === localStorage.getItem('username');
notifications.show({
- message: `${username}'s password has been changed`,
+ message: isSelf ? 'Your password has been changed. You will be logged out.' : `${username}'s password has been changed`,
color: 'green',
});
+ if (isSelf) {
+ axios.post(apiRoutes.logout).finally(() => {
+ localStorage.clear();
+ navigate('/login');
+ });
+ }
}
}).catch(err => {
notifications.show({