admin static method
Factory method for admin-only middleware
Implementation
static Middleware admin({
String redirectTo = '/login',
List<String> except = const [],
String guard = 'web',
}) {
return Middleware(
(Request request, ResponseContract response, NextFunction next) async {
// First check basic authentication
if (_isExcluded(request.path, except)) {
return next();
}
final user = request.session.get('user') as Map<String, dynamic>?;
if (user == null) {
await _handleUnauthenticated(request, response, redirectTo);
return;
}
// Check admin role (simplified)
final role = user['role'] as String?;
if (role != 'admin') {
request.session
.flash('message', 'Access denied. Admin privileges required.');
if (response is Response) {
await response.redirect('/dashboard');
}
return;
}
await next();
},
priority: MiddlewarePriority.auth,
name: 'web-admin',
);
}