23 lines
596 B
TypeScript
23 lines
596 B
TypeScript
|
|
import { Request, Response, NextFunction } from 'express';
|
||
|
|
import { isAdmin, isSuperAdmin } from '../roles';
|
||
|
|
|
||
|
|
export function requireAdmin( req: Request, res: Response, next: NextFunction ): void
|
||
|
|
{
|
||
|
|
if ( !req.auth || !isAdmin( req.auth.roles ) )
|
||
|
|
{
|
||
|
|
res.status( 403 ).json( { error: 'Admin access required' } );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
next();
|
||
|
|
}
|
||
|
|
|
||
|
|
export function requireSuperAdmin( req: Request, res: Response, next: NextFunction ): void
|
||
|
|
{
|
||
|
|
if ( !req.auth || !isSuperAdmin( req.auth.roles ) )
|
||
|
|
{
|
||
|
|
res.status( 403 ).json( { error: 'Superadmin access required' } );
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
next();
|
||
|
|
}
|