agoussec / urp
一个用于启动用户角色和权限项目的 Laravel 扩展包
dev-main
2022-02-03 07:16 UTC
This package is auto-updated.
Last update: 2024-09-29 06:34:44 UTC
README
一个用于启动用户角色和权限项目的 Laravel 扩展包
URP 代表用户角色权限。这是一个基本的扩展包,用于启动包含多个用户角色的 Laravel 项目。
特性
- 可发布的角色和权限迁移文件
- 使用 artisan 命令行创建用户
roles
和permissions
- 从 artisan 命令行将
roles
和permissions
分配给用户 - 角色 & 权限中间件
- 检查
$user->hasPermissionTo
- 检查
$user->hasRole
- Blade
@can
,@cannot
指令
安装
URP 需要 Laravel 5.3+ 来运行。
在新的 Laravel 项目上使用 composer
安装。
composer require agoussec/urp
在用户模型中添加 HasPermission 特性。
<?php namespace App\Models; ... ... use Agoussec\URP\Traits\HasPermissions; class User extends Authenticatable { use HasPermissions; ... ... }
用法
控制台命令 -
创建用户角色
php artisan role:add {rolename} {slug?}
列出所有添加的用户角色
php artisan role:list
将角色分配给用户
php artisan assign:role {roleslug} {usermail}
创建权限
php artisan permission:add {permissionname} {slug?}
列出所有添加的权限
php artisan permission:list
迁移
安装包后,迁移文件将自动加载。只需运行 migrate
命令。
php artisan migrate
中间件
RoleMiddleware
// In Route
Route::get('test/middleware', [TestController::class, 'testShow'])->name('test.role')->middleware('role:role1|role2,permission');
控制器
can
if($request->user()->can('create-tasks')) {
//Code goes here
}
role
$user->hasRole('developer')
permission
$user->givePermissionsTo('create-tasks')
Blade 指令
角色
@role('developer')
Hello developer
@endrole
can
@can('add-course')
<li class="nav-item"><a href="{{ route('admin.course.add') }}" class="nav-link">Add New Course</a></li>
@endcan
@canany(['view-course', 'edit-course', 'delete-course'])
<li class="nav-item "><a href="{{ route('admin.course.manage') }}" class="nav-link">Manage Courses</a></li>
@endcanany
待办事项
- 用于删除
roles
和permissions
的控制台命令 - 将
permission
分配给特定用户或用户role
的命令 - 特定模型或资源的策略逻辑。
- 测试用例
致谢
许可证
MIT
自由软件,太棒了!