sbennett/jukumu

Laravel 5 用户角色和权限扩展

dev-master / 1.0.x-dev 2015-05-29 15:59 UTC

This package is auto-updated.

Last update: 2024-09-15 21:38:53 UTC


README

此包扩展了内置用户身份验证功能。这添加了用户角色和权限的功能。

特性

  • 能够给用户添加角色,并给该角色添加权限。

安装

您应该使用 Composer 安装此包。将以下 require 添加到您的 composer.json 文件中,并运行 composer install 命令来安装。

Laravel 5

{
    "require": {
        "sbennett/jukumu": "dev-master"
    }
}

然后在您的 config/app.php 中,将此行添加到 providers 数组中。

'SamBenne\Jukumu\Providers\JukumuServiceProvider',

用法

要将这些额外功能添加到 User 类中,您只需在 User 类中添加即可。

例如

use Illuminate\Database\Eloquent\Model;
use SamBenne\Jukumu\Traits\JukumuRoleTrait;

class User extends Model
{
    use Authenticatable, CanResetPassword, JukumuRoleTrait;
}

一旦添加,您就可以在类中使用这些新方法,它们会自动在类中可用:

  • setRole( $roleName )
  • is( $roleName )
  • hasRole( array $roleNames )
  • has( array $permissions )

还有一个辅助类 Jukumu,可以帮助创建角色和权限。

  • Jukumu::createRole( $name, $display_name = NULL, $description = NULL, $order = 0 )
  • Jukumu::createPermission( $name, $group = NULL, $display_name = NULL, $description = NULL )
  • Jukumu::attachRole( $user, Role $role, array $permissions = [] )
  • Jukumu::attachPermissions( Role $role, array $permissions = [] )

创建角色

这将创建一个角色。这只需要一个名称,但您还可以添加其他信息。

  • 名称:必需,字符串
  • 显示名称:可选,字符串
  • 描述:可选,字符串
  • 顺序:可选,整数

示例

Jukumu::createRole('admin', 'Admin', 'This is my main admin role.');
Jukumu::createRole('user', 'User', 'This is the basic user role.', 1);

创建权限

这将创建一个权限,您可以稍后将其附加到角色。

  • 名称:必需,字符串
  • :可选,字符串
  • 显示名称:可选,字符串
  • 描述:可选,字符串

组参数允许您将权限分组在一起,这可以在稍后的权限检查中使用点表示法。

示例

Jukumu::createPermission('view', 'blog', 'View Blog Post', 'View the blog post.');
Jukumu::createPermission('edit', 'blog', 'Edit Blog Post', 'Edit the blog post.');

附加

有两种方法可以附加。第一个 attachRole 允许您将角色附加到用户,并将权限附加到该角色。另一个方法只是允许将权限直接附加到角色。

示例 1

这将为用户附加角色和权限。

Jukumu::attachRole(Auth::user(), Role::find(1), ['blog.view', 'blog.edit']);

示例 2

这直接将权限附加到角色。

Jukumu::attachPermissions( Role::find(1), [
    'blog.view', 'blog.edit'
] );

故障排除

如果发生错误,请检查并在问题中添加错误。

许可证

Jukumu 在 MIT 许可证 (MIT) 下授权。