cybercog/laravel-nova-ban

为您的应用程序提供 Laravel Nova 禁用功能。

2.0.0 2022-08-13 07:53 UTC

This package is auto-updated.

Last update: 2024-08-26 08:54:48 UTC


README

cog-laravel-nova-ban

Releases StyleCI License

介绍

幕后 cybercog/laravel-ban 被使用。

laravel-nova-ban-preview

内容

安装

通过 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_atnullable 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 模型的资源中注册 BanUnban 操作。

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 而不是使用问题跟踪器。

贡献者

Laravel Nova Ban 贡献者列表

替代方案

请随时通过 Pull Request 添加更多替代方案。

许可证

关于 CyberCog

CyberCog 是一个由爱好者组成的社交联盟。研究产品及软件开发中的最佳解决方案是我们热情所在。

CyberCog