validate method
override
Método obligatorio que implementa la lógica de validación
request - El request HTTP actual
jwtPayload - El payload decodificado del JWT
Retorna ValidationResult indicando éxito o falla con mensaje
Implementation
@override
ValidationResult validate(Request request, Map<String, dynamic> jwtPayload) {
// Control total del desarrollador sobre campos JWT
final userDepartment = jwtPayload['department'] as String?;
final jobTitle = jwtPayload['job_title'] as String?;
final employeeLevel = jwtPayload['employee_level'] as String?;
// Validar departamento
if (userDepartment == null || !allowedDepartments.contains(userDepartment)) {
return ValidationResult.invalid(
'Access restricted to: ${allowedDepartments.join(", ")} departments'
);
}
// Validar nivel gerencial si es requerido
if (requireManagerLevel) {
if (employeeLevel != 'manager' && employeeLevel != 'director') {
return ValidationResult.invalid('Management level access required');
}
}
return ValidationResult.valid();
}