Handle missing app context in permission middleware to prevent errors.

This commit is contained in:
dswbx
2025-01-09 11:06:40 +01:00
parent 47f48be514
commit 99df7f1402

View File

@@ -34,12 +34,15 @@ export const auth = createMiddleware<ServerEnv>(async (c, next) => {
export const permission = (...permissions: Permission[]) => export const permission = (...permissions: Permission[]) =>
createMiddleware<ServerEnv>(async (c, next) => { createMiddleware<ServerEnv>(async (c, next) => {
const app = c.get("app"); const app = c.get("app");
if (app) {
const p = Array.isArray(permissions) ? permissions : [permissions]; const p = Array.isArray(permissions) ? permissions : [permissions];
const guard = app.modules.ctx().guard; const guard = app.modules.ctx().guard;
for (const permission of p) { for (const permission of p) {
guard.throwUnlessGranted(permission); guard.throwUnlessGranted(permission);
} }
} else {
console.warn("app not in context, skip permission check");
}
await next(); await next();
}); });