cybercog / laravel-nova-ban
为您的应用程序提供 Laravel Nova 禁用功能。
2.0.0
2022-08-13 07:53 UTC
Requires
- php: ^7.1.3|^8.0
- cybercog/laravel-ban: ^3.0|^4.0
- laravel/nova: *
README
介绍
幕后 cybercog/laravel-ban 被使用。
内容
安装
通过 Composer 引入包。
composer require cybercog/laravel-nova-ban
用法
准备可禁用模型
use Cog\Contracts\Ban\Bannable as BannableContract; use Cog\Laravel\Ban\Traits\Bannable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable implements BannableContract { use Bannable; }
准备可禁用模型数据库表
可禁用模型必须有一个名为 banned_at
的 nullable timestamp
列。此值用作标志并简化了检查用户是否被禁用的操作。如果您尝试将默认 Laravel 用户模型变为可禁用,可以使用以下示例。
创建一个新的迁移文件
php artisan make:migration add_banned_at_column_to_users_table
然后将以下代码插入到迁移文件中
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class AddBannedAtColumnToUsersTable extends Migration { public function up(): void { Schema::table('users', function (Blueprint $table) { $table->timestamp('banned_at')->nullable(); }); } public function down(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('banned_at'); }); } }
应用新的迁移。
在 Nova 资源中注册禁用操作
在您的 Bannable
模型的资源中注册 Ban
和 Unban
操作。
public function actions(Request $request) { return [ new \Cog\Laravel\Nova\Ban\Actions\Ban(), new \Cog\Laravel\Nova\Ban\Actions\Unban(), ]; }
贡献
有关详细信息,请参阅 CONTRIBUTING。
测试
使用以下命令运行测试
vendor/bin/phpunit
安全
如果您发现任何安全相关的问题,请通过电子邮件 open@cybercog.su 而不是使用问题跟踪器。
贡献者
替代方案
请随时通过 Pull Request 添加更多替代方案。
许可证
Laravel Nova Ban
包是开源软件,由 MIT 许可证 发布,由 Anton Komarev 维护。Fat Boss In Jail
图片由 Gan Khoon Lay 根据 Creative Commons 3.0 许可。
关于 CyberCog
CyberCog 是一个由爱好者组成的社交联盟。研究产品及软件开发中的最佳解决方案是我们热情所在。