Laravel 5.1 ACL权限控制 二 之策略类

  随着应用逻辑越来越复杂,要处理的权限越来越多,将所有权限定义在AuthServiceProvider显然不是一个明智的做法,因此Laravel引入了策略类,策略类是一些原生的PHP类,和控制器基于资源对路由进行分组类似,策略类基于资源对权限进行分组管理。

1、生成策略类

php artisan make:policy PostPolicy

2、在AuthServiceProvider的policies属性中注册策略类:

‘App\Post‘ => ‘App\Policies\PostPolicy‘,

3、在app/Policies/PostPolicy.php添加策略

    public function update(User $user, Post $post){
        return $user->owns($post);
    }

 ----------------------------------以下为使用方法 -------------------------

4、修改AuthServiceProvider中的boot方法为

    public function boot(GateContract $gate)
    {
        $this->registerPolicies($gate);
    }

5、PostController.php中的show方法和上篇文章中的相同,不作改变

6、修改show.blade.php视图中的接收参数

标题:{{ $post->title }}
<br>
内容:{{ $post->body }}
@can(‘update‘, $post)
<a href="#">编辑文章</a>
@endcan

 实现的效果和上篇中的是否具有 "编辑文章" 的结果是一样的

时间: 2024-08-07 04:31:24

Laravel 5.1 ACL权限控制 二 之策略类的相关文章

Asp.Net MVC 权限控制(二):Controller级别控制

续接上篇:Asp.Net MVC 权限控制(一):使用 Authorize Roles 简单实现 由于直接在Controller上标记角色名有很大的局限性,所以本示例使用 ActionFilterAttribute 进行权限拦截. 首先创建三类标记: 1. 匿名访问标记(AnonymousAttribute)2. 登录用户访问标记(LoginAllowViewAttribute)3. 权限验证访问标记(PermissionPageAttribute) 最重要的一个权限拦截:AuthorizeFi

Laravel 使用中间件进行权限控制

Laravel 使用中间件进行权限控制 飞凡的陀螺 关注 2018.01.24 17:45 字数 264 阅读 1138评论 0喜欢 1 先看 文档Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求.这里实现一个只有admin角色才能访问特定路由的功能 新建middlewarephp artisan make:middleware MustBeAdmin 打开生成的 \app\Http\Middleware\MustBeAdmin.php 修改handle方法关于hasR

ZooKeeper系列(五)—— ACL 权限控制

一.前言 为了避免存储在 Zookeeper 上的数据被其他程序或者人为误修改,Zookeeper 提供了 ACL(Access Control Lists) 进行权限控制.只有拥有对应权限的用户才可以对节点进行增删改查等操作.下文分别介绍使用原生的 Shell 命令和 Apache Curator 客户端进行权限设置. 二.使用Shell进行权限管理 2.1 设置与查看权限 想要给某个节点设置权限 (ACL),有以下两个可选的命令: # 1.给已有节点赋予权限 setAcl path acl

Linux下ACL权限控制以及用sudo设置用户对命令的执行权限

ACL权限分配 1.setfacl命令设置文件权限 setfacl -m u:user1:rw root.txt setfacl -m u:user2:rwx root.txt 2.getfacl命令查看文件权限 getfacl root.txt [[email protected] ~]# getfacl text.txt  # file: text.txt # owner: root # group: root user::rw- user:wangteng:rw- group::r-- m

&lt;实训|第十三天&gt;linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

[[email protected]~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于自己的linux内核,根据自己的需求不论是硬件还是其他,你都可以定制,但是编译成功与否这个我不敢保证,我也编译了两次才成功的.  开班第十三天: [[email protected]~]#今天的课程大纲 1.缩容失败原因以及开不了机解决方法 2.Linux中ACL权限的详解 3.讲解一下磁盘配

Linux - 文件ACL权限控制

getfacl 1.test # 查看文件ACL权限 setfacl -R -m u:xuesong:rw- 1.test # 对文件增加用户的读写权限 -R 递归 原文地址:https://www.cnblogs.com/sharesdk/p/8677980.html

phalcon: 目录分组后的acl权限控制

楼主在做acl权限的时候,发现官方的acl只能针对未分组的目录,如下: app/ ___|./controller ___|./logic ___|./plugins ___|./models .............. 但是对分组不支持,后来想想,是支持的.分组的目录如下 app/ ___|./admin/ __________|./controllers __________|./logic __________|./views __________|./module.php ___|./

重读java编程思想之访问权限控制二

private:私有权限 即除了包含该成员的类之外,其他任何类都无法访问这个成员: class Sun{ private Sun(){} static Sun doSun(){ return new Sun(); } } public class IceCream{ public static void main(String[] args){ // Sun s = new Sun(); 这是错误的 Sun s = Sun.doSun(); } } //上面的例子简单的描述了private的一个

Asp.Net MVC 权限控制(三):Controller和Action级别控制

续接上篇:Asp.Net MVC 权限控制(二):Controller级别控制 再次在重构!这次对Controller和Action进行验证. 思路:系统有很多功能集,功能集对应很多Controller和Action,角色分配很多功能集. 首先构建一个基础数据: 1.功能集初始化: /// <summary> /// 系统模块 /// </summary> public class SystemModule { public SystemModule() { this.ID = G