Viewing File: /home/xaimptsg/public_html/src/vendor/akaunting/laravel-firewall/src/Middleware/Bot.php

<?php

namespace Akaunting\Firewall\Middleware;

use Akaunting\Firewall\Abstracts\Middleware;
use Akaunting\Firewall\Events\AttackDetected;
use Jenssegers\Agent\Agent;

class Bot extends Middleware
{
    public function check($patterns)
    {
        $agent = new Agent();

        if (! $agent->isRobot()) {
            return false;
        }

        if (! $crawlers = config('firewall.middleware.' . $this->middleware . '.crawlers')) {
            return false;
        }

        $status = false;

        if (! empty($crawlers['allow']) && ! in_array((string) $agent->robot(), (array) $crawlers['allow'])) {
            $status = true;
        }

        if (in_array((string) $agent->robot(), (array) $crawlers['block'])) {
            $status = true;
        }

        if ($status) {
            $log = $this->log();

            event(new AttackDetected($log));
        }

        return $status;
    }
}
Back to Directory