gecche / laravel-bannable
处理可封禁用户的简单包
Requires
- laravel/framework: ^11.0
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.1.0
- laravel/legacy-factories: ^1.0.4
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.0
- orchestra/testbench-browser-kit: ^9.0
- phpunit/phpunit: ^10.5
This package is not auto-updated.
Last update: 2024-09-17 18:29:13 UTC
README
laravel-bannable
Laravel 处理可封禁用户的包
描述
在许多应用程序中,由于各种原因,例如:不遵守平台规则、不尊重其他用户或未支付月费等,您的用户可能会被平台封禁。
此包向标准用户添加了一个 banned
属性,以防止此类封禁用户的认证。已完全测试。
文档
版本兼容性
安装
将 gecche/laravel-bannable 添加到 composer.json 的需求中
{ "require": { "gecche/laravel-bannable": "10.*" } }
此包使用发现功能。
基本用法
要使用包的功能,首先您需要发布并运行提供的迁移,该迁移简单地向用户表添加一个 banned
布尔字段。
然后,如果您使用 Eloquent 用户,您必须将可封禁功能添加到 User 模型类中
php artisan vendor:publish --provider="Gecche\Bannable\BannableServiceProvider"
然后,如果您使用 Eloquent 用户,您必须将可封禁功能添加到 User 模型类中
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Gecche\Bannable\Bannable; use Gecche\Bannable\Contracts\Bannable as BannableContract; class User extends Authenticatable implements BannableContract { use Notifiable; use Bannable; ...
最后,您需要更改 auth.php
配置,将用户提供者的驱动程序更改为 eloquent-bannable
'providers' => [ 'users' => [ 'driver' => 'eloquent-bannable', 'model' => App\User::class, ], ],
就是这样!从现在起,如果用户的 banned
属性设置为 true,则将无法认证到平台。
该包还提供了一个 database-bannable
用户提供者的驱动程序。
更改 "banned" 属性的名称
要更改 "banned" 属性的名称,只需在您的 Eloquent User 类中重写 getBannedName
方法,将 banned
名称替换为您想要的任何名称
/** * Get the column name for the "banned" value. * * @return string */ public function getBannedName() { return 'banned'; }
请记住更改数据库字段的名称!
封禁和解封用户
Gecche\Bannable\Bannable
特性还提供了两个简单的方法,即 ban
和 unban
,分别用于封禁和解封用户。这两个方法也会触发相应的事件,即 Gecche\Bannable\Events\Banned
和 Gecche\Bannable\Events\Unbanned
事件。