Laravel 5.2 中文文档2、定义权限(Abilities) 判断用户是否有权限执行给定动作的最简单方式就是使 用 Illuminate\Auth\Access\Gate 类来定义一个“权限”。我们在 AuthServiceProvider 中定 义所有权限,例如,我们来定义一个接收当前 User 和 Post 模型的 update-post 权限,在 该权限中,我们判断用户 id 是否和文章的 user_id 匹配: 所有权限返回 false。 基于类的权限 除了注册授权回调闭包之外,还可以通过传递包含权限类名和类方法的方式来注册权限方 法,当需要的时候,该类会通过服务容器进行解析: $gate->define('update-post', 'PostPolicy@update'); 拦截认证检查 有时候,你可能希望对指定用户授予所有权限,在这种场景中,需要使用 before 中文学习资源 173 注意:所有策略类都通过服务容器进行解析,这意味着你可以在策略类的构造函数中类型 提示任何依赖,它们将会自动被注入。 拦截所有检查 有时候,你可能希望对指定用户授予所有权限,在这种场景中,需要使用 before 方法定义 一个在所有其他授权检查之前运行的回调: $gate->before(function ($user, $ability) { if0 码力 | 377 页 | 4.56 MB | 1 年前3
Laravel 6.0 中文文档中文学习资源:https://xueyuanjun.com 496 if (Gate::denies('update-post', $post)) { // 当前用户不能更新文章... } 注:这种情况下,对于未登录用户所有权限校验都会返 回 false。 如果你想要判断指定用户(非当前用户)是否有权进行某项操作,可 以使用 Gate 门面上的 forUser 方法: if (Gate::forUser($use Gate::authorize('edit-settings', $post); // The action is authorized... 拦截 Gate 检查 有时候,你可能想要分配所有权限给指定用户,这可以通过 在 before 方法中定义一个回调来实现,该回调会在所有授权检查之 前调用: Gate::before(function ($user, $ability) { if User $user, Post $post) { return $user->id === $post->user_id; } } 策略过滤器 对特定用户,你可能想要在一个策略方法中对其授权所有权限,比如 后台管理员。要实现这个功能,需要在 Policy 类中定义一 本文档由学院君提供 学院君致力于提供优质 Laravel 中文学习资源:https://xueyuanjun.com 5090 码力 | 1442 页 | 14.66 MB | 1 年前3
Laravel 5.6 中文文档当前用户可以更新文章... } if (Gate::denies('update-post', $post)) { // 当前用户不能更新文章... } 注:这种情况下,对于未登录用户所有权限校验都会返回 false。 如果你想要判断指定用户(非当前用户)是否有权进行某项操作,可以使用 Gate 门面上的 forUser 方法: if (Gate::forUser($user)- Laravel 学院致力于提供优质 Laravel 中文学习资源:http://laravelacademy.org 216 策略过滤器 对特定用户,你可能想要在一个策略方法中对其授权所有权限,比如后台管理员。要实现这个功能,需要在 Policy 类中定义一个 before 方法, before 方法会在 Policy 类的所有其他方法执行前执行,从而确保在其他策略方法调用前执行其中的逻辑:0 码力 | 377 页 | 14.56 MB | 1 年前3
Laravel 5.3 中文文档bool */ public function create(User $user) { // } 策略过滤器 对特定用户,你可能想要在一个策略方法中对其授权所有权限,比如后台管理员。要实现这个功 能,需要在策略类中定义一个 before 方法,before 方法会在策略类的所有其他方法执行前执行, 从而确保在其他策略方法调用前执行其中的逻辑: public0 码力 | 691 页 | 9.37 MB | 1 年前3
共 4 条
- 1













