fix: resolve password change redirect loop and file watcher crash

#263: The mandatory password change modal updated React state before
the browser stored the new JWT cookie, causing a race condition where
the auth context checked the session with the old (invalidated) token.
Replace the state update with a full page redirect to /admin/dashboard
after a brief delay, ensuring the new cookie is applied cleanly.

#269: The file watcher service imported isVideoMimeType from
fileSecurityUtils where it doesn't exist. The function is exported
from videoProcessor. Fix the import path.

Closes #269
This commit is contained in:
Paul Nothaft
2026-04-09 13:54:23 +02:00
parent a1b63de251
commit 835bdf5abb
2 changed files with 7 additions and 9 deletions
@@ -27,14 +27,12 @@ export const MandatoryPasswordChangeModal: React.FC = () => {
mutationFn: adminService.changePassword,
onSuccess: () => {
toast.success(t('mandatoryPasswordChange.success'));
updatePasswordChanged();
// Reset form
setFormData({
currentPassword: '',
newPassword: '',
confirmPassword: ''
});
setErrors({});
// Force a full page reload so the browser picks up the new JWT cookie
// set by the backend. A React state update alone causes a race condition
// where the auth context checks the session before the cookie is stored.
setTimeout(() => {
window.location.href = '/admin/dashboard';
}, 500);
},
onError: (error: any) => {
if (error.response?.data?.error) {