ricardoboss / laravel-roles-migrations
为您的 Laravel 角色编写迁移。
Requires
- php: ^7.2
- jeremykenedy/laravel-roles: 2.*|3.*
- laravel/framework: 6.*|7.*
This package is auto-updated.
Last update: 2023-05-16 11:06:50 UTC
README
为 jeremykenedy/laravel-roles
添加迁移。
概述
此包旨在提供角色和权限(及其关系)的迁移功能。
安装
只需使用 composer 需求此包
composer require ricardoboss/laravel-roles-migrations
使用方法
创建迁移
此包添加了一个新的抽象类 - RolesMigration
- 您可以使用它来编写角色的迁移。
要添加新的迁移,只需执行
php artisan make:rolesmigration MyNewRolesMigration
来添加新的迁移(可以在 database/migrations/xxx_xx_xx_xxxxxx_my_new_roles_migration.php
中找到)。
打开迁移。注意类 extends
的是新的 RolesMigration
类,而不是 Laravel 的默认 Migration
类。
现在到了有趣的环节,编写迁移。
编写迁移
角色迁移由四个受保护的数组组成,它们定义了迁移做了什么
$permissions
:包含要添加的权限定义$roles
:包含要添加的角色定义$toAttach
:定义了哪些权限应该附加到哪个角色$toDetach
:定义了哪些权限应该从哪个角色分离
每种迁移类型及其结果的示例可以在此处找到
示例
权限
$permissions = [ [ 'name' => "List users", 'slug' => "users.list", // optional 'description' => "Permission to list all users." ] ];
slug
值是可选的。如果缺失,将从名称派生。
当迁移执行时,上述配置将向您的数据库添加一个新的权限。在回滚的情况下,此确切权限将被删除。
角色
$roles = [ [ 'name' => "Admin", 'level' => 10, 'slug' => "admin", // optional 'description' => "A user with all available permissions." // optional ] ];
slug
和 description
值是可选的。如果 slug
缺失,将从名称派生。默认 description
值为 null
。
ToAdd & ToDetach
$toAttach = [ 'admin' => [ 'users.list', // more permissions... ] ];
$toAttach
和 $toDetach
有相同的结构。它们由嵌套数组组成,声明了哪个角色获得或失去了哪些权限。
数组的键必须是角色的 slug
,而值必须是权限 slug
的数组。您可以为每个角色列出任意数量的权限。
附加和分离权限的顺序很重要:如果在
$toAttach
和$toDetach
中都有相同的配置,则结果将是不变,因为权限首先被附加,然后被分离。
贡献
欢迎fork仓库并创建pull request。我们鼓励您遵循PSR-12编码风格指南。
待办事项列表
- 基本迁移和回滚
-
artisan
命令 - 支持更新现有角色/权限
- 编写测试
如果您发现缺少您想要的功能或找到一个bug,请创建一个问题并描述它。
许可证
此包的源代码是免费软件,根据MIT许可证条款分发。
感谢jeremykenedy创建了laravel-roles
包,当然还要感谢taylorotwell创建了如此出色的框架。