Documentation / @zerotal/auth / RequireRoleMiddleware
Class: RequireRoleMiddleware
Defined in: auth/src/roles/RequireRoleMiddleware.ts:23
RequireRoleMiddleware — assert the authenticated user has one or more roles.
Reads roles straight off the authenticated user via the relational Roles
mixin (user.hasRole(...)). The user model must be composed with Roles;
if it exposes no hasRole, the request is forbidden.
Throws UnauthorizedError (401) when the request is unauthenticated.
Throws ForbiddenError (403) when the user lacks the required role(s).
Example
// Single role:
Router.get('/admin', AdminController, 'index', [new RequireRoleMiddleware('admin')]);
// Any of several roles (OR semantics):
Router.get('/dashboard', DashboardController, 'index', [
new RequireRoleMiddleware('admin', 'editor'),
]);
Extends
Constructors
Constructor
new RequireRoleMiddleware(...
roles):RequireRoleMiddleware
Defined in: auth/src/roles/RequireRoleMiddleware.ts:28
Parameters
roles
...string[]
Returns
RequireRoleMiddleware
Overrides
Properties
options
protectedoptions:object={}
Defined in: auth/src/roles/RequireRoleMiddleware.ts:24
Subclasses must declare this with their default option values. TypeScript enforces this at compile time — forgetting it is a type error.
Overrides
Methods
for()
staticfor(...roles):RequireRoleMiddleware
Defined in: auth/src/roles/RequireRoleMiddleware.ts:35
Fluent factory alias: RequireRoleMiddleware.for('admin', 'editor')
Parameters
roles
...string[]
Returns
RequireRoleMiddleware
handle()
handle(
http,next):Promise<void|Response>
Defined in: auth/src/roles/RequireRoleMiddleware.ts:39
Parameters
http
next
Returns
Promise<void | Response>
Overrides
with()
staticwith<T,Opts>(this,options): () =>InstanceType<T>
Defined in: core/src/middleware/BaseMiddleware.ts:48
Returns a zero-arg subclass with the given options deep-merged on top of the subclass defaults, usable directly in app.use([...]).
Type Parameters
T
T extends (...args) => BaseMiddleware<any>
Opts
Opts = T extends (...args) => BaseMiddleware<U> ? U : object
Parameters
this
T
options
Partial<Opts>
Returns
() => InstanceType<T>
Inherited from
afterResponse()?
optionalafterResponse(ctx):Promise<void>
Defined in: core/src/middleware/BaseMiddleware.ts:70
Parameters
ctx
Returns
Promise<void>
Inherited from
onError()?
optionalonError(ctx,error):Promise<void>
Defined in: core/src/middleware/BaseMiddleware.ts:71
Parameters
ctx
error
Error
Returns
Promise<void>