diff --git a/src/servers/_middlewares/user-middleware.ts b/src/servers/_middlewares/user-middleware.ts index fb05acc0..ff2bc0c9 100644 --- a/src/servers/_middlewares/user-middleware.ts +++ b/src/servers/_middlewares/user-middleware.ts @@ -2,6 +2,7 @@ import type { MiddlewareHandler } from 'hono'; import { verify } from '@@/jwt'; import * as errors from '@@/custom-errors'; import { isOriginAllowed } from './origin-validation'; +import { isLockdown } from '../api/auth/distress'; import { getUserById, isTokenBlacklisted } from 'officerdb'; // Role permissions: which HTTP methods each role can use @@ -21,6 +22,9 @@ function isMethodAllowed(role: string | null, method: string): boolean { } export const userMiddleware: MiddlewareHandler = async function (ctx, next) { + // Duress lockdown: reject every authenticated request, cutting off all existing sessions. + if (isLockdown()) throw errors.UNAUTHORIZED(); + const { authorization } = ctx.req.header(); // Support token in query param for media elements (