untitledpng/laravel-policy-roles

此包的最新版本(v2.1.0)没有可用的许可信息。

为用户添加多个角色并处理其策略

v2.1.0 2022-10-04 13:36 UTC

This package is auto-updated.

Last update: 2024-09-04 18:16:48 UTC


README

使用此包,您可以实现基于角色的权限。当角色不存在时,此包将自动阻止访问。此外,此包还支持Laravel Nova。

安装

使用composer安装此包:composer require untitledpng/laravel-policy-roles

如何使用此包

  • 首先,您需要将 Untitledpng\LaravelPolicyRoles\Domain\User 扩展到您的用户Eloquent模型中。
  • 创建一个新策略,例如以下示例策略。
  • 现在,像平时一样将策略添加到 AuthServiceProvider 中。
  • 将角色和权限添加到您的数据库中。
  • 完成!

示例策略

use Untitledpng\LaravelPolicyRoles\Services\PolicyService;

class UserPolicy extends Untitledpng\LaravelPolicyRoles\Policies\BasePolicy
{
    /**
     * UserPolicy constructor.
     *
     * @param PolicyService $policyService
     */
    public function __construct(
        \Untitledpng\LaravelPolicyRoles\Services\PolicyService $policyService
    ) {
        parent::__construct('user', $policyService);
    }
}

额外功能

  • 您可以使用 $user->hasRole('view-user');。这将根据用户是否有该角色返回true/false。
  • 使用特殊助手 @can('create', App\User::class) YES @endcan 检查用户是否有特定权限。