限制Laravel中的“用户”,同时仍允许每个人编辑自己的“用户”

时间:2014-10-04 01:24:17

标签: php laravel

我还在学习Laravel&最佳实践。

我有一个用户系统,因此您可以创建&通过UserController更新用户。只有管​​理员才能访问用户和操纵它们。所以我创建了以下路线:

Route::resource('user', 'UserController')->before('role:admin'); 

一切看起来都很好,工作正常。我有一个过滤器,可以检查登录用户是否为管理员,然后才能访问与用户有关的任何内容。

在这里,我感到困惑。登录且不是管理员的用户仍应能够编辑自己的信息(电子邮件,密码,用户名)。我已经使用相同的表单设置了一个新表单,我已经设置了用于编辑用户,因为所有字段都是相同的,我认为我能够使用相同的表单方法处理表单而不是复制处理,这是相同的:

{{Form::model($user, ['method'=>'PATCH', 'route'=>['user.update', $user->id]])}}

除了因为我的用户不是管理员,他们才会被推回403消息,而不是处理脚本。

如何在不放弃对UsersController的管理限制的情况下为用户编辑自己的信息例外?

1 个答案:

答案 0 :(得分:-1)

简单的解决方案是创建具有不同访问限制的AccountControllerUsersControllerAccountController之间完成的任何常见处理都可以移到模型中。

相关问题