dainsys / locky
基于 Bootstrap 4 的 laravel UI 包装器,用于 spatie/laravel-permission!
2.5.1
2021-06-27 03:52 UTC
Requires
- php: ^7.2
- dainsys/components: ^1.0
- laravel/framework: ^6.0|^7.0|^8.0
- livewire/livewire: ^2.4
- spatie/laravel-permission: ^3.0
Requires (Dev)
- laravel/legacy-factories: 1.x-dev
- laravel/ui: ^3.0
- orchestra/testbench: ^6.0
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/jetstream、laravel/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()来停用用户。
依赖项
- Dainsys 组件: https://packagist.org.cn/packages/dainsys/components
- Laravel Ui: https://laravel.net.cn/docs/7.x/authorization
- Spatie Permission: https://docs.spatie.be/laravel-permission/v3/introduction/