如何扩展默认的Laravel 5 auth类以提供可以删除和更新用户的管理界面?

时间:2016-05-15 02:47:07

标签: php laravel laravel-5

我正在构建一个包含应用程序所有元素的管理界面。我想要包含一个允许管理员编辑用户属性和删除用户的部分。

使用内置的用户模型和身份验证中间件,我该如何实现?

1 个答案:

答案 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