我正在构建一个包含应用程序所有元素的管理界面。我想要包含一个允许管理员编辑用户属性和删除用户的部分。
使用内置的用户模型和身份验证中间件,我该如何实现?
答案 0 :(得分:2)
如何使用门面?
首先创建一个ManageUsersPolicy类
class ManageUsersPolicy {
use HandlesAuthorization;
public function authorize(User $user) {
// Whatever logic you want to authorize the current user, por example:
return $user->hasRole('Admin');
}
}
然后在AuthServiceProvider
班级
public function boot(GateContract $gate) {
$gate->define('manage-users', 'App\Policies\ManageUsersPolicy@authorize');
}
然后在您的控制器中,您可以致电:
if(Gate::denies('manage-users') {
abort(403, 'You are nor authorized.');
} else {
// This user is authorized to manage other users.
}
查看有关政策的文件: https://laravel.com/docs/5.2/authorization#policies