用户角色权限控制包 Laravel-permissio

用户角色权限控制包

一般我们要写curb控制的时候,是非常繁多的事,所以,就产生了一个用户角色权限控制包
此软件包允许我管理数据库中的用户权限和角色

通过composer安装

composer require spatie/laravel-permission

安装完成后,这个扩展会提供生成迁移文件的命令
生成数据库迁移文件:

php artisan vendor:publish
–provider=“SpatiePermissionPermissionServiceProvider” --tag=“migrations”

在 migration 目录下可看到相关表信息,执行数据库迁移

php artisan migrate

会生成这些表

还需要生成配置信息:

php artisan vendor:publish
–provider=“SpatiePermissionPermissionServiceProvider” --tag=“config”

生成成功后,会在config配置目录中生成一个文件

如果需要去使用它,还需要去引入它的包
比如,在user模型下加载

如果想要在数据库中填充默认权限
创建权限管理的填充文件

php artisan make:seeder PermissionSeeder

在里面写入这些数据


   //添加权限
        //填充用户权限数据
        $permissions = [
            ['name' => 'users.lock', 'cn_name' => '用户启用禁用','guard_name'=>'api'],
            ['name' => 'users.index', 'cn_name' => '用户列表','guard_name'=>'api'],
            ['name' => 'users.show', 'cn_name' => '用户详情','guard_name'=>'api'],
            ['name' => 'category.status', 'cn_name' => '分类的禁用和启用','guard_name'=>'api'],
            ['name' => 'category.index', 'cn_name' => '分类列表','guard_name'=>'api'],
            ['name' => 'category.store', 'cn_name' => '分类添加','guard_name'=>'api'],
            ['name' => 'category.show', 'cn_name' => '分类详情','guard_name'=>'api'],
            ['name' => 'category.update', 'cn_name' => '分类更新','guard_name'=>'api'],
            ['name' => 'goods.on', 'cn_name' => '商品上架下架','guard_name'=>'api'],
            ['name' => 'goods.recommend', 'cn_name' => '商品推荐','guard_name'=>'api'],
            ['name' => 'goods.index', 'cn_name' => '商品列表','guard_name'=>'api'],
            ['name' => 'goods.store', 'cn_name' => '商品添加','guard_name'=>'api'],
            ['name' => 'goods.show', 'cn_name' => '商品详情','guard_name'=>'api'],
            ['name' => 'goods.update', 'cn_name' => '商品更新','guard_name'=>'api'],
            ['name' => 'goods.destroy', 'cn_name' => '商品删除','guard_name'=>'api'],
            ['name' => 'comments.index', 'cn_name' => '评价列表','guard_name'=>'api'],
            ['name' => 'comments.show', 'cn_name' => '评价详情','guard_name'=>'api'],
            ['name' => 'comments.reply', 'cn_name' => '评价回复','guard_name'=>'api'],
            ['name' => 'orders.index', 'cn_name' => '订单列表','guard_name'=>'api'],
            ['name' => 'orders.show', 'cn_name' => '订单详情','guard_name'=>'api'],
            ['name' => 'orders.post', 'cn_name' => '快递发货','guard_name'=>'api'],
            ['name' => 'slides.seq', 'cn_name' => '轮播图排序','guard_name'=>'api'],
            ['name' => 'slides.status', 'cn_name' => '轮播图状态','guard_name'=>'api'],
            ['name' => 'slides.index', 'cn_name' => '轮播图列表','guard_name'=>'api'],
            ['name' => 'slides.store', 'cn_name' => '添加轮播图','guard_name'=>'api'],
            ['name' => 'slides.update', 'cn_name' => '轮播图更新','guard_name'=>'api'],
            ['name' => 'slides.destroy', 'cn_name' => '轮播图删除','guard_name'=>'api'],
            ['name' => 'menus', 'cn_name' => '菜单管理','guard_name'=>'api'],
        ];
        //将数据插入到权限表中
        foreach ($permissions as $p) {
            Permission::create($p);
        }
        //添加角色
        $role = Role::create(['name' => 'admin', 'cn_name' => '超级管理员','guard_name'=>'api']);
        //为角色添加权限
        $role->givePermissionTo(Permission::all());//所有权限都添加

这些填充命令就可以了。但是这样是需要一个一个命令去填充的,可以把这个文件引入到默认的填充文件中
databaseseedersDatabaseSeeder.php

版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/php/32.html
来源:阿信博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>