zinethq/spark-roles

此包已被放弃,不再维护。作者建议使用 centrality-labs/spark-roles 包。

基于 caffeinated/shinobi 的 Laravel Spark 团队和用户的角色与权限

dev-master / 1.0.x-dev 2018-02-22 00:46 UTC

This package is not auto-updated.

Last update: 2022-02-01 13:01:36 UTC


README

Laravel 5.3 Spark 2.0 Source Build Status License

SparkRoles,基于 Caffeinated Shinobi,通过以下 ACL 结构为 Laravel Spark 的 Team 和 User 模型提供简单轻量级的基于角色的权限系统:

  • 每个用户可以拥有零个或多个角色。
  • 每个用户可以拥有零个或多个权限。
  • 每个团队可以拥有零个或多个角色。
  • 每个团队可以拥有零个或多个权限。
  • 角色和权限可以在用户和团队之间共享。
  • 可选:可以将具有特定角色(例如 developer)的用户和团队添加到 Spark 开发者数组中。

然后,通过团队/用户分配的角色将权限继承到团队/用户。

此包是构建基于 Laravel/Spark 的项目时 Caffeinated Shinobi 的替代品。

文档

您可以在 ZiNETHQ SparkRoles Wiki 中找到用户友好的文档,正在更新中。

快速安装

  1. 通过 Composer 安装包。

    composer require zinethq/spark-roles:dev-master
  2. 将服务提供者添加到项目的 config/app.php 文件中。

    ZiNETHQ\SparkRoles\SparkRolesServiceProvider::class,
  3. 将配置、模型和迁移发布到项目中。

    php artisan vendor:publish --provider="ZiNETHQ\SparkRoles\SparkRolesServiceProvider"
  4. 迁移数据库。

    php artisan migrate
  5. CanUseRoles 特性添加到 Team 和/或 User 模型中,例如

    • app\Team.php
    <?php
    
    namespace App;
    
    use Laravel\Spark\Team as SparkTeam;
    use ZiNETHQ\SparkRoles\Traits\CanHaveRoles;
    
    class Team extends SparkTeam
    {
        use CanHaveRoles;
        ...
    }
    • app\User.php
    <?php
    
    namespace App;
    
    use Laravel\Spark\User as SparkUser;
    use ZiNETHQ\SparkRoles\Traits\CanHaveRoles;
    
    class User extends SparkUser
    {
        use CanHaveRoles;
        ...
    }
  6. 可选:如果您想根据团队/用户角色动态分配 Spark 开发者数组,则打开 app\Http\kernel.php 并将其添加到 web 中间件组中

    \ZiNETHQ\SparkRoles\Middleware\AddDevelopers::class,

    此中间件可以在包的配置文件中控制(启用/禁用并选择标识开发者的角色 slugs)。

  7. 开始为 Spark 团队和用户使用角色!

贡献

Fork,编辑,拉取请求。您知道如何操作。

待办事项列表

如果您想做出贡献,可以考虑帮助以下任务之一

  • 添加 Travis CI 集成
  • 添加 PHPUnit 支持
  • 添加有意义的单元测试
  • 添加基于 Kiosk 的前端来定义角色和权限,类似于 WatchtowerShinobi

Awesome Shinobi

《Caffeinated Shinobi》是一个为Laravel添加基于角色的访问控制(RBAC)的出色工具。还有一款名为《Watchtower》的Shinobi酷炫界面,可以通过Watchtower获取。去看看吧!