一个用于启动用户角色和权限项目的 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 命令行创建用户 rolespermissions
  • 从 artisan 命令行将 rolespermissions 分配给用户
  • 角色 & 权限中间件
  • 检查 $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

待办事项

  • 用于删除 rolespermissions 的控制台命令
  • permission 分配给特定用户或用户 role 的命令
  • 特定模型或资源的策略逻辑。
  • 测试用例

致谢

许可证

MIT

自由软件,太棒了!