加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Laravel系列之CMS系统学习 — 角色、权限配置【2】

发布时间:2020-12-14 19:59:42 所属栏目:大数据 来源:网络整理
导读:一、RBAC分析 基于角色的权限访问控制(Role-Based Access Control),这里存在这么几个玩意儿:角色、权限,用户 表:roles、permissions、role_has_permissions、model_has_roles、model_has_permissions(最后两张表可以看4.1有解释) 明确:用户属于什么

一、RBAC分析

基于角色的权限访问控制(Role-Based Access Control),这里存在这么几个玩意儿:角色、权限,用户

表:roles、permissions、role_has_permissions、model_has_roles、model_has_permissions(最后两张表可以看4.1有解释)

明确:用户属于什么角色,那么角色拥有什么权限,用户自然拥有

然后配置,就戳这里(后面就不添加了)~

二、角色的增删改查

这个就很普通的功能了,略???

但是有一些需要注意的地方:

1. 更新操作时,method使用PUT

2. Laravel的唯一性验证举例:'title' => 'required|unique:roles,title,'.$id,

解释:对title字段进行验证——必填|唯一性验证:从拿一张表进行验证,验证什么字段,不验证当前字段(意思就是:比如你要修改的信息叫张三,表里面只有你当前编辑的这条记录是张三,所以忽略要这条记录,不然不就不唯一了嘛~)

3.Laravel再进行更新、删除操作时,需要进行传参(也就是你要删除那一条记录的唯一标识),而要想获取这个参数可以使用:$this->route('XXX')

三、权限(很重要,自学的过程中卡了好久)

控制权限的方式有很多种,但我个人认为,(也是组长要求哈哈哈哈)最合适的方式是中间件

1. 路由定义

1 // 权限管理

2 Route::get('role/permission/{role}','RoleController@permission');//页面显示

3 Route::post('role/permission/{role}','RoleController@permissionStore');//提交表单

2. 页面展示

无论通过Modals还是页面来显示权限页面都可以,我觉得少的话使用Modals(注意使用Modals的话,就不用show方法了),多的话页面展示

然后就是遍历权限,有两种方法

方法一:遍历permission.php文件

方法二:通过方法来获取

1 public function permission(Role $role)

2 {

3 // 根据guard来获取权限

4 $modules = HDModule::getPermissionByGuard('admin');

5

6 // 分配

7 // 之所以分配role是因为1.要进行checkbox选中判断,也就是判断当前用户是否有某权限 2.提交表单role_id

8 return view('admin::role.permission',compact('role'),compact('modules'));

9 }

然后就可以进行页面渲染了,@foreach就好啦~ 里面的一大堆input只是样式啦~

1 @extends('admin::layouts.master')

2 @section('content')

3 @component('components.tabs',['title'=>$role->title.'权限设置'])

4 @slot('nav')

5

    推荐文章
      热点阅读