mirhamit / acl
Laravel 的访问级别控制
1.2.2
2024-07-28 08:21 UTC
Requires
- php: ^7.2.5|>=8.0
- illuminate/auth: >=6.0
- illuminate/database: >=6.0
README
此包可用于管理 Laravel 应用程序中用户的角色和权限
安装
打开终端并切换到您的项目根目录
安装 Laravel
laravel new laravel-acl-package
cd laravel-acl-package
设置您的 Laravel 身份验证 Laravel 文档
本节使用 laravel 8 启动包 和 breeze
composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
使用 composer 安装此包
composer require mirhamit/acl
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --provider="MirHamit\ACL\ACLServiceProvider" --tag="acl-migrations"
并发布语言文件以自定义语言
php artisan vendor:publish --provider="MirHamit\ACL\ACLServiceProvider" --tag="acl-lang"
或发布语言和迁移
php artisan vendor:publish --provider="MirHamit\ACL\ACLServiceProvider"
并运行迁移
php artisan migrate
用法
将 HasPermission 添加到您的用户模型中
use MirHamit\ACL\HasPermissions; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable, HasPermissions; ... }
授予用户权限
$user->syncPermissions([1,2,3]); // Permission IDS
授予用户角色
$user->syncRoles([1,2,3]); // Roles IDS
您可以在 roles 表中添加多个角色,在 permissions 表中添加权限,并在 permission_role 表中将权限绑定到角色
您可以使用中间件:test-permission 是绑定到 test-role 并绑定到登录用户的权限
Route::get('test', function () { return "salam"; })->middleware('role:test-role, test-permission');
或仅对用户绑定的权限使用它
Route::get('test', function () { return "salam"; })->middleware('permission: test-permission');
或从 Laravel Blade 使用它
@role('test-role') // or @role(['test-role', 'test-role2']) // user has role and can access to this section @endrole
检查权限
@permission('test-permission') // or @permission(['test-permission', 'test-permission2']) // user has role and can access to this section @endpermission
测试
As Soon As Possible
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
安全漏洞
请审查并检查安全漏洞,并在问题部分报告它们。
致谢
许可证
MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。