zeevx/superban

Add the ability to ban a client completely from accessing your app routes for a period of time.

1.0.1 2023-12-22 12:12 UTC

This package is auto-updated.

Last update: 2024-04-22 12:50:44 UTC


README

superban

Laravel Superban .

Latest Version on Packagist Total Downloads

Add the ability to ban a client completely from accessing your app routes for a period of time.

Installation

You can install the package via composer:

composer require zeevx/superban

You can publish the config file with:

php artisan vendor:publish --tag="superban-config"

To use middleware add them inside your app/Http/Kernel.php :

    protected $routeMiddleware = [
        'superban' => \Zeevx\Superban\Middlewares\SuperbanMiddleware::class,
    ];

This is the contents of the published config file:

return [
/**
     * Key used in cache
     * The default is ip_address, you can use either: ip_address or email or user_id
     *
     */
    'key' => 'ip_address',

    /**
     * The cache to be used,
     * The default cache in config/cache.php is used if empty.
     */
    'cache' => 'file',

    /**
     * Specify guard to be used if you are using email or user_id
     * The default guard in config/auth.php is used if empty
     */
    'user_guard' => '',

    /**
     * Enable email notification for when a user is banned
     *
     */
    'enable_email_notification' => true,

    /**
     * Email address to be used for email notification
     *
     */
    'email_address' => '',
];

Usage

Apply the middleware to any route in this format:

X - Number of request

Y - Within what period (in minutes)

Z- How long the user should be banned (in minutes).

Route::middleware(['superban:X,Y,Z])->group(function () {
   Route::post('/thisroute', function () {
       // ...
   });
 
   Route::post('anotherroute', function () {
       // ...
   });
});

Testing

composer test

Credits

License

The MIT License (MIT). Please see License File for more information.