nijwel/user-roles

Laravel的用户角色管理包

1.0.0 2024-09-06 14:22 UTC

This package is auto-updated.

Last update: 2024-09-06 14:34:33 UTC


README

nijwel/user-roles 是一个用于轻松管理用户角色和权限的Laravel包。它提供了一个简单的接口来管理用户角色和权限,能够无缝地与Laravel的认证系统集成。

您可以访问github仓库 - https://github.com/nijwel/user_roles.git

功能

  • 角色管理:创建、更新和删除用户角色。
  • 权限管理:分配和管理角色的权限。
  • 与Laravel Auth集成:与Laravel内置的认证系统一起工作。
  • 灵活配置:自定义角色和权限设置。

安装

通过Composer

使用Composer安装此包

composer require nijwel/user-roles

迁移

php artisan migrate

发布配置(如有适用)

如果包包含配置文件,请使用以下命令发布它们

php artisan vendor:publish --provider="Nijwel\UserRoles\UserRoleServiceProvider"

注意:如果您收到消息“没有可发布的资源[ ]”,则表示没有其他配置文件要发布。请参阅包文档以获取更多信息。

配置

将服务提供者添加到您的 config/app.php 文件中的 providers 数组中

'providers' => [
    // Other service providers...
    Nijwel\UserRoles\UserRolesServiceProvider::class,
],

用法

创建角色 您可以使用包提供的Role模型创建角色

现在您可以将侧边栏菜单名称或顶部菜单名称插入权限表

示例:学生、子类别、产品、账户等

角色名称是输入,权限是复选框数组。您可以从同一个表单和POST请求中处理它们

#您的控制器

use Nijwel\UserRoles\Services\UserRoleService;

protected $UserRoleService;

public function __construct(UserRoleService $UserRoleService)
{
    $this->UserRoleService = $UserRoleService;
}

#获取所有角色

UserRoleService::getAllRole();

#获取单个角色

UserRoleService::getRole($id);

#存储角色

UserRoleService::createRole($request->all());

#更新角色

UserRoleService::updateRole($request->all(), $id);

#删除角色

UserRoleService::destroyRole($id);

获取所有权限列表。

注意:权限意味着您的侧边栏名称

UserRoleService::getAllPermission();

#获取单个权限

UserRoleService::getPermission($id);

#存储权限

UserRoleService::createPermission($request->all());

#更新权限

UserRoleService::updatePermission($request->all(), $id);

#删除权限

UserRoleService::destroyPermission($id);

#获取所有角色及其权限

注意:您可以使用一个表单来处理

UserRoleService::getAllRoleWithPermission();

#获取单个角色及其权限

UserRoleService::getRoleWithPermission($id);

#存储角色及其权限[这是角色和权限的数组数据]

//Permissions is array value ;
UserRoleService::createRoleWithPermission($request->all());

#更新角色及其权限[数组]

//Permissions is array value ;
UserRoleService::updateRoleWithPermission($request->all(), $id);

#删除角色及其权限

UserRoleService::destroyRoleWithPermission($id);

对于blade文件

@if (isPermission('Employee'))
    <li class="nav-item text-danger">
        <a class="nav-link"
            href="{{ route('index.employee') }}">Employee</a>
    </li>
@endif
@if (isPermission('Manager'))
    <li class="nav-item text-danger">
        <a class="nav-link" href="{{ route('index.manager') }}">Manager</a>
    </li>
@endif

在Laravel应用程序中使用中间件

一旦包安装到Laravel应用程序中,您就可以在路由或控制器中使用中间件。

在路由中使用中间件

您可以像这样将中间件应用于路由

// routes/web.php

Route::get('/admin', function () {
    // Only users with the 'admin' role can access this route
})->middleware('permission:your-permission');

在控制器中使用中间件

您也可以在控制器中应用中间件

// app/Http/Controllers/AdminController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class AdminController extends Controller
{
    public function __construct()
    {
        $this->middleware('permission:your-permission');
    }

    public function index()
    {
        // Your logic here
    }
}