sbennett / jukumu
Laravel 5 用户角色和权限扩展
dev-master / 1.0.x-dev
2015-05-29 15:59 UTC
Requires
- php: >=5.5.0
Requires (Dev)
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) 下授权。