我正在开展一个laravel项目。我有一个在所有页面上都持久的侧边菜单。但是,要显示的菜单项取决于分配给用户的角色。我通过这样做实现了这个目标:
<?php
/**$links = Session::get('links'); **/
use Illuminate\Support\Facades\DB;
$id_hr_employee= Auth::user()->id_hr_employee;
$links = DB::select("select a.link as links from sys_menu_links as a a.id_hr_employee = $id_hr_employee)
");
?>
@if(isset($links))
@foreach($links as $link)
<li><hr class="light-grey-hr mb-10"/></li>
@include("$link->links")
@endforeach
@endif
这很有效。但是,如果有人在地址栏上输入指向菜单(未分配给他)的路线,他会看到该页面。 请问如何防止这种情况?
答案 0 :(得分:1)
我强烈建议您使用laratrust:https://laratrust.readthedocs.io/en/4.0/。 并保护您的方面:1。使用middelware进行操作以阻止您的管理员视图2.选项检查Controller文件中的权限。 作为指导,您可以查看本教程:http://itsolutionstuff.com/post/laravel-52-user-acl-roles-and-permissions-with-middleware-using-entrust-from-scratch-tutorialexample.html
问候