Я создал два промежуточного программного обеспечения под названием «MustBeAdmin» и «MustBeUser», чтобы убедиться, что в зависимости от входа пользователя я перенаправляю их на нужную страницу и ограничиваю несанкционированный контент. В настоящее время все работает нормально, и перенаправления тоже работают. Но логика, которую я написал за сценой, кажется мне неправильной и странно, что она все еще работает. Если я напишу логику, которая мне кажется правильной, по крайней мере, она будет работать не так, как ожидалось.
Таблица пользователей
id (1,2,3,...)
name
role (1,2,3,...)
Таблица ролей
id (1,2,3,...)
role (Student, Admin,...)
ПО промежуточного слоя MustBeAdmin
public function handle($request, Closure $next)
{
if($request->user()->role == 2)
{
return $next($request);
}
else
{
return redirect('/admin/users');
}
}
Промежуточное ПО MustBeUser:
public function handle($request, Closure $next)
{
if($request->user()->role == 1)
{
return $next($request);
}
else
{
return redirect('/admin/users');
}
}
kernel.php
'admin' => \App\Http\Middleware\MustBeAdmin::class,
'user' => \App\Http\Middleware\MustBeUser::class,
Как видите, я зарегистрировал промежуточное ПО в ядре.
Я получаю именно те результаты, которые мне нужны, но я сомневаюсь, что логика в промежуточном программном обеспечении верна?
1 = Student
2 = Admin
если вы видите в промежуточном программном обеспечении MustBeAdmin, я сравниваю, если роль пользователя равна 2 (администратор), затем выполните следующее ($ request), а в промежуточном программном обеспечении MustBeUser я сравниваю, если роль пользователя равна 1 (Студент), затем выполните следующее ($ request) и я установил еще в / Admin каталог.
Я чувствую, что это неправильно, как ты думаешь?