nijwel / user-roles
Laravel的用户角色管理包
1.0.0
2024-09-06 14:22 UTC
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.2
- laravel/framework: ^10.10
- laravel/sanctum: ^3.3
- laravel/tinker: ^2.8
- laravel/ui: ^4.2
- pusher/pusher-php-server: ^7.2
Requires (Dev)
- fakerphp/faker: ^1.9.1
- laravel/pint: ^1.0
- laravel/sail: ^1.18
- mockery/mockery: ^1.4.4
- nunomaduro/collision: ^7.0
- phpunit/phpunit: ^10.1
- spatie/laravel-ignition: ^2.0
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 } }