Среднее ПО должно либо вернуть ответ, либо передать запрос по трубопроводу. Middlewares независимы друг от друга и не должны знать о прохождении других посредников.
Вам нужно будет реализовать отдельное промежуточное программное обеспечение, которое позволяет выполнять 2 роли или одно промежуточное программное обеспечение, которое принимает разрешенные роли в качестве параметров.
Вариант 1: просто создать промежуточное программное обеспечение - это комбинированная версия Auth1 и Auth2, который проверяет наличие двух типов пользователей. Это самый простой вариант, хотя и не очень гибкий.
Вариант 2: поскольку средние версии версии 5.1 могут принимать параметры - подробнее см. Здесь: https://laravel.com/docs/5.1/middleware # промежуточного слоя-параметры . Вы могли бы реализовать одно промежуточное программное обеспечение, которое будет отображать список ролей пользователей для проверки и просто определить разрешенные роли в файле маршрутов. Следующий код должен сделать трюк:
// define allowed roles in your routes.php
Route::group(['namespace' => 'Common', 'middleware' => 'checkUserRoles:role1,role2', function() {
//routes that should be allowed for users with role1 OR role2 go here
});
// PHP < 5.6
// create a parametrized middleware that takes allowed roles as parameters
public function handle($request, Closure $next) {
// will contain ['role1', 'role2']
$allowedRoles = array_slice(func_get_args(), 2);
// do whatever role check logic you need
}
// PHP >= 5.6
// create a parametrized middleware that takes allowed roles as parameters
public function handle($request, Closure $next, ...$roles) {
// $roles will contain ['role1', 'role2']
// do whatever role check logic you need
}
Это должен быть комментарий, но у меня нет этих преимуществ.
Это должно быть потому, что console.log
вызывается в цикле for.
Следующий код должен работать.
for (i = 0; i < recommendedTasks.length; i++) {
console.log(recommendedTasks[i])
}
Опять же, я хотел бы прокомментировать. Надеюсь, это поможет вам!
Это происходит потому, что вы определяете рекомендуемые задачи вне функции Task, которая срабатывает одновременно с console.log (), которая принимает первое доступное значение [], попробуйте вместо этого.
Task.find({}).stream()
.on('data', function(task){
let recommendedTasks = [];
for(let skill of member.skills){
for(let skill2 of task.skills){
if(String(skill) == String(skill2)) return recommendedTasks.push(task._id);
}
}
});
console.log(recommendedTasks)
Надеюсь, это поможет.