improved too many emails for firewall
This commit is contained in:
		@@ -5,7 +5,6 @@ namespace App\Listeners\Email;
 | 
			
		||||
use Akaunting\Firewall\Events\AttackDetected;
 | 
			
		||||
use Akaunting\Firewall\Traits\Helper;
 | 
			
		||||
use App\Events\Email\TooManyEmailsSent as Event;
 | 
			
		||||
use Illuminate\Support\Facades\Config;
 | 
			
		||||
 | 
			
		||||
class TellFirewallTooManyEmailsSent
 | 
			
		||||
{
 | 
			
		||||
@@ -17,9 +16,7 @@ class TellFirewallTooManyEmailsSent
 | 
			
		||||
        $this->middleware = 'too_many_emails_sent';
 | 
			
		||||
        $this->user_id = $event->user_id;
 | 
			
		||||
 | 
			
		||||
        $this->loadConfig();
 | 
			
		||||
 | 
			
		||||
        if ($this->skip($event)) {
 | 
			
		||||
        if ($this->skip()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -28,40 +25,7 @@ class TellFirewallTooManyEmailsSent
 | 
			
		||||
        event(new AttackDetected($log));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function loadConfig(): void
 | 
			
		||||
    {
 | 
			
		||||
        if (! empty(Config::get('firewall.middleware.' . $this->middleware))) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $config = array_merge_recursive(
 | 
			
		||||
            Config::get('firewall'),
 | 
			
		||||
            [
 | 
			
		||||
                'middleware' => [
 | 
			
		||||
                    $this->middleware => [
 | 
			
		||||
                        'enabled' => env('FIREWALL_MIDDLEWARE_' . strtoupper($this->middleware) . '_ENABLED', Config::get('firewall.enabled', true)),
 | 
			
		||||
 | 
			
		||||
                        'methods' => ['post'],
 | 
			
		||||
 | 
			
		||||
                        'routes' => [
 | 
			
		||||
                            'only' => [], // i.e. 'contact'
 | 
			
		||||
                            'except' => [], // i.e. 'admin/*'
 | 
			
		||||
                        ],
 | 
			
		||||
 | 
			
		||||
                        'auto_block' => [
 | 
			
		||||
                            'attempts' => env('FIREWALL_MIDDLEWARE_' . strtoupper($this->middleware) . '_AUTO_BLOCK_ATTEMPTS', 20),
 | 
			
		||||
                            'frequency' => 1 * 60, // 1 minute
 | 
			
		||||
                            'period' => 30 * 60, // 30 minutes
 | 
			
		||||
                        ],
 | 
			
		||||
                    ],
 | 
			
		||||
                ],
 | 
			
		||||
            ]
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        Config::set('firewall', $config);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function skip($event): bool
 | 
			
		||||
    public function skip(): bool
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->isDisabled()) {
 | 
			
		||||
            return true;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user