Banhammer for Laravel предлагает простой способ блокировки любой Модели по ID и IP; он также позволяет блокировать запросы по IP-адресам. После блокировки пользователей приложением можно использовать предоставленное промежуточное ПО, чтобы запретить запрещенным пользователям доступ к определенным частям приложения.
Как только вы установите этот пакет, вы можете быстро заблокировать модели с помощью атрибута Bannable
пакета:
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Mchev\Banhammer\Traits\Bannable;
class User extends Authenticatable
{
use Bannable;
}
Теперь вы можете блокировать пользователей с:
$user->ban();
// IP ban
$user->ban([
'ip' => $user->ip,
]);
// List all bans
$model->bans();
// Check ban status
$model->isBanned();
$model->isNotBanned();
// Unban a model
$user->unban();
Этот пакет также поддерживает блокировку IP-адресов напрямую:
use Mchev\Banhammer\IP;
IP::ban("8.8.8.8");
IP::ban(["8.8.8.8", "4.4.4.4"]);
Еще одна приятная функция, которую предоставляет этот пакет, заключается в том, что запрещенные модели могут иметь срок действия. Как только срок блокировки истечет, модель будет автоматически разблокирована через планировщик:
$user->banUntil('2 days');
Этот пакет также предоставляет служебные методы для очистки всех банов в приложении, включая ручную отмену блокировки с истекшим сроком действия, если вам нужно программно очистить истекшие блокировки.
Вы можете узнать больше об этом пакете, получить полные инструкции по установке и просмотреть код source на GitHub.