用户角色权限控制包 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
来源:Code林
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论