Laravel 权限管理总结(一)

1. 第一步 建立迁移文件

Post 表

id

user_id

title

body

外键   $table->foreign(‘user_id‘)->references(‘id‘)->(‘users‘)->onDelete(‘cascade‘)

然后执行迁移

2.第二步模型工厂生成测试数据

$factory->define(App\Models\Post::class, function (Faker\Generator $faker) {

return [        ‘user_id‘ => factary(\App\User::class)->create()->id,        ‘title‘ => $faker->sentence,        ‘body‘ => $faker->paragraph,    ];});通过seeder 或者 tinker 生成数据

3.ACL权限实现

定义Posts资源路由并定义该Controllers

App\Providers\AuthServiceProvider 

boot 方法中Gate::define(‘show-post‘, function ($user, $post) {
        return $user->id == $post->user_id;
    });

代码优化
return $user->owns(‘$post‘);
User模型中 定义 owns  return $user->id == $post->user_id;
show方法中

public function show($id){     $post = Post::findorFail($id);

\Auth::loginUsingId(1);

//或者$this->authorize(‘show-post‘,$post)

if(Gate::denies(‘show-post‘,$post)){        abort(403,‘sorry‘);     }

return $post->title;   //5.1的新特性  return view(‘posts.show‘,compact(‘post‘));}

show 的视图文件 

<p1 > {{ $post ->title}} </p1>

现在只有有权限的用户 才可以看到 编辑的a标签@can(‘show-post‘,$post)<a href="#"> 编辑文章</a>@endcan

4.Policy权限规则实现
php artisan make:policy PostPolicy 

在Policy中

public function update(User $user,Post $post){

return $user->owns($post);
}
AuthServiceProvider 中注册该策略

使用它
public function show($id){     $post = Post::findorFail($id);

\Auth::loginUsingId(1);

//或者$this->authorize(‘show-post‘,$post)

if(Gate::denies(‘update‘,$post)){        abort(403,‘sorry‘);     }

return view(‘posts.show‘,compact(‘post‘));}
show 的视图文件 

<p1 > {{ $post ->title}} </p1>

现在只有有权限的用户 才可以看到 编辑的a标签@can(‘update‘,$post)<a href="#"> 编辑文章</a>@endcan










原文地址:https://www.cnblogs.com/gorgeous/p/8404831.html

时间: 2024-10-21 16:33:47

Laravel 权限管理总结(一)的相关文章

Laravel 权限管理总结(二)

生成5张表 User     roles     permissions       user_role   role_permissions (两张多对多) 在模型中建立关联 $user ->roles()->attach($role); $role->permission()->attach($role); 中间件Middleware Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求 php artisan make:middleware MustBe

Oracle 表空间和用户权限管理

一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻辑结构的一个重要组件. 表空间可以存放各种应用对象,如表.索引等. 而每一个表空间由一个或多个数据文件组成. 1. 表空间的分类 表空间可分为3类: 永久性表空间:一般保存表.上天.过程和索引等数据.system.sysaux.users.example表空间是默认安装的. 临时性表空间:只用于保存

linux文件权限管理与ACL访问控制列表

一.文件属性 1.文件属性: 文件属性操作 chown : change owner  ,设置文件所有者 chgrp : change group  ,设置文件的属组 文件属主修改: chown 格式:chown [OPTION]- [OWNER][:[GROUP]] FILE- 用法: OWNER OWNER:GROUPNAME    (同时修改属主.属组) :GROUPNAME                (默认属主,修改属组) ( 命令中的冒号可用.替换:) chown  –refere

mysql的权限管理

mysql的权限管理1.授权的基本原则   只授予满足要求的最小权限,但要注意使用户能够授权给别的用户(with grant option)   对用户设置登录的主机限制   删除没有密码的用户   满足密码的复杂度,设置较为复杂的密码   定期检查用户的权限,适当收回不需要的权限   2.给用户授权  mysql> grant all on *.* to 'root'@'10.0.5.150' identified by 'aixocm';  mysql> flush privileges;

Oracle权限管理详解

转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级.Role 角色级.这些权限可以授予给用户.特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户.对管理权限而言,角色是一个工具,权限能够被授予给一个角色,角色也能被授予给另一个角

浅析Linux系统下用户与权限管理

Linux作为一种多用户多任务操作系统,在日常的使用中不可避免地要划分出一个角色的概念来管理和使用计算机,这个角色与每一个计算机使用者关联,在Linux中称这种角色为用户.而在每一个用户使用计算机的过程中,又必然存在对有限计算机资源使用的限制性,那么操作系统就必须提供一种途径来保证每个用户独立.合理的使用计算机. 一.用户和用户组管理   (一)用户及用户组相关基本概念  用户:泛指计算机的使用者.用计算机可识别的用户ID(UID,user id)标识. 用户组:用户容器,用来将多个用户合并为一

centos用户权限管理

进程是以其发起者的身份运行的,它对文件的访问权限,取决于此进程的用户的权限.在linux操作系统启动的过程中,为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,而这类用户从不需要登录系统,仅让其他进程以他的身份运行,从而仅能获取普通权限的用户.为此这部分用户称系统用户.同时用户与组密不可分.进程的运行是以它的属主(又称,发起者)来访问的.它能访问资源的权限取决于发起者对某个资源的访问权限.下面是从用户和授权两个角度来讲解用户授权管理. 用户管理 用户按类别分管理员

实现业务系统中的用户权限管理--实现篇

在设计篇中,我们已经为大家阐述了有关权限管理系统的数据库设计,在本篇中,我们将重点放在其实现代码部分.为了让你能够更直接更有效的看到全部动作的代码,我们使用"动作分解列表"的方式来陈述每个动作以及相关资源. 实现权限管理功能的动作 动作分解 动作名 相关表名 操作集类型 (S,U,I,D,SQL) 表单 模组 字符资源 是否分页? 返回提示? 权限检测 权限初始化安装 setup 无 无 无 setup setupok 否 否 否 显示添加管理组界面 addnewgroup 无 无 a

RBAC权限管理

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限. 这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接