Laravel-admin仅编辑自己的

laravel-admin列表中使用了 where 条件可以查询出用户只属于自己的数据,但是在编辑数据时,尝试通过修改链接中的 ID 果然可以跳转到别人的数据,这样安全隐患十分大,所以写了一个简单验证用户登录后 laravel-admin用户只操作自己的数据 。

form()方法中添加代码

//编辑页面
if($form->isEditing()){
  //获取当前编辑数据ID
  $id = request()->route()->parameters()['test']; 
  //获取该数据创建者用户名           
  $username=\DB::table('Tests')->where('id',$id)->value('username');
  //非超管、管理员以及创建者禁止访问
  if(!Admin::user()->isAdministrator()&&!Admin::user()->can('admin.management')&&$username!=Admin::user()->username){
     abort(403, '非法访问');
  }
}

0 评论
内联反馈
查看所有评论