dainsys/locky

基于 Bootstrap 4 的 laravel UI 包装器,用于 spatie/laravel-permission!

2.5.1 2021-06-27 03:52 UTC

README

基于 Bootstrap 4 的 laravel UI 包装器,用于 spatie/laravel-permission!

安装

  • 使用 composer 安装,运行命令 composer require dainsys/locky
  • Dainsys\Locky\WithLockyAcl; 添加到您的 User 模型中;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Dainsys\Locky\WithLockyAcl;

class User extends Authenticatable
{
    use WithLockyAcl;
}
  • 将以下项添加到 protected $casts 数组中
      protected $casts = [
          'inactivated_at' => 'date'
      ];
  • 在 .env 文件中设置 LOCKY_SUPER_USER_EMAIL=super.user@email-example.com
  • 此软件包依赖于您拥有一个认证系统。我们强烈建议使用 laravel/jetstreamlaravel/freeze 或旧的 laravel/ui
  • 视图
  • 此软件包自带视图,因此您必须通过运行 php artisan vendor:publish --tag=locky-public 命令来发布软件包的公共资产。但是,如果您打算使用自己的视图,则不需要这样做。在这种情况下,您可以运行 php artisan vendor:publish --tag=locky-views 并使其扩展您的布局视图。
  • 迁移
  • 默认情况下,如果您执行 php artisan migrate 命令,软件包的迁移将自动运行。但是,您可以将 with_migrations 选项设置为 false 并自行处理迁移。为此,首先运行 php artisan vendor:publish --tag=locky-config 命令。
  • 将以下链接添加到 layouts.app 链接的认证部分
@include('locky::_nav-links')
  • 您还可以通过运行 php artisan vendor:publish --tag=locky-migrations 来发布软件包迁移,并根据需要对其进行调整。

使用方法

  • 安装此软件包后,您可以通过使用 php artisan make:policy 命令创建 Laravel 策略来限制用户访问,并添加检查 return $user->hasAnyRole(["role1", "role2"])return $user->hasAnyPermission(["permission1", "permission2"]),并通过更新控制器构造函数方法来实现。
use App\YourModel;

class MyController extends Controller
{
    public function __construct()
    {
        $this->authorizeResource(YourModel::class, 'model');
    }
}
  • 请参阅 Laravel 授权文档 https://laravel.net.cn/docs/7.x/authorization
  • 此软件包通过添加查询作用域添加了活动或非活动用户的概念。只需使用作用域 actives()inactives() 来按需过滤即可。
  • 您可以通过对 Eloquent 用户记录调用 activate() 方法来激活用户;使用 inactivate() 来停用用户。

依赖项