Laravel 的访问级别控制

1.2.2 2024-07-28 08:21 UTC

This package is auto-updated.

Last update: 2024-09-28 08:44:56 UTC


README

Latest Version on Packagist Total Downloads

此包可用于管理 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)。请参阅 许可证文件 了解更多信息。