bunthoeuntok / laravel-simple-permission
Laravel 简单权限包
dev-master
2023-07-03 04:29 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.13.0
- staudenmeir/laravel-adjacency-list: ^1.12
Requires (Dev)
- laravel/pint: ^1.0
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-09 06:49:39 UTC
README
本包旨在帮助 Laravel 开发者实现简单的角色和权限。
安装
您可以通过 Composer 安装此包。
composer require bunthoeuntok/laravel-simple-permission
您可以通过以下命令发布配置、迁移和中间件:
php artisan permission:install
然后运行以下命令迁移表:
php artisan migrate
这是已发布配置文件的内容
return [ // Menu level structure 'menu_levels' => [ 'module', 'sub-module', 'page' ], // Cache key 'cache_key' => 'permissions', // Menu structure to import 'data' => [ ... ] ];
用法
步骤 1
您需要在 User.php
模型中使用 HasRole
特性。
use Bunthoeuntok\SimplePermission\Traits\HasRole; class User extends Authenticatable { ... use HasRole; ... }
步骤 2
在 Kernel.php
中注册 PermissionMiddleware.php
。
protected $routeMiddleware = [ ... 'role.permission' => \App\Http\Middleware\PermissionMiddleware::class ];
步骤 3
在路由文件中使用命名路由中间件。
- 注意:当您定义路由时,应提供
name
属性,使其与 菜单操作 中的 route_name 匹配。
// Index action Route::get('users', [UserController::class, 'index'])->middleware(['role.psermission', 'auth'])->name('users.index'); // Delete action Route::get('users/{user}', [UserController::class, 'destroy'])->middleware(['role.psermission', 'auth'])->name('users.destroy');
我们能做什么
- 创建角色并为用户分配角色
// Create a role $role = Bunthoeuntok\SimplePermission\Models\Role::create([ 'role_name' => 'Admin', 'is_admin' => false; ]); // Create user $user = User::factory()->create(); // Assign role to a user $user->assignRole($role);
操作
- 创建菜单及其操作
$menu = Bunthoeuntok\SimplePermission\Models\Menu::create([ 'menu_name' => 'User', 'level' => 'page'; // base on menu_levels in simple-permissions.php config ]); // Create menu actions $menu->actions()->saveMany([ new Bunthoeuntok\SimplePermission\Models\Menu([ 'action_name' => 'index', 'route_name' => 'modules.root-pages.index', 'default' => true, ]), new Bunthoeuntok\SimplePermission\Models\Menu([ 'action_name' => 'delete', 'route_name' => 'modules.root-pages.delete', ]) ]);
- 或者运行命令
php artisan permission:import
,此命令将导入在 simple-permission.php 配置中的data
键设置的菜单结构。
return [ // Menu structure to import 'data' => [ [ 'menu_name' => 'User', 'level' => 'page', 'actions' => [ [ 'action_name' => 'index', 'route_name' => 'users.index', 'default' => true, ], [ 'action_name' => 'delete', 'route_name' => 'users.delete', ], ] ], ], ]
更新日志
有关最近更改的更多信息,请参阅 更新日志。
贡献
请参阅 贡献指南 获取详细信息。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。