Skip to content

Commit 6a840ec

Browse files
authored
Merge pull request #16 from mozami/master
Allow user to (optionally) specify their own Log and Ip models in config file
2 parents 4841fb7 + 521383f commit 6a840ec

File tree

5 files changed

+12
-5
lines changed

5 files changed

+12
-5
lines changed

src/Commands/UnblockIp.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ public function handle()
3939
{
4040
$now = Carbon::now(config('app.timezone'));
4141

42-
Ip::with('log')->blocked()->each(function ($ip) use ($now) {
42+
$ip = config('firewall.models.ip', Ip::class);
43+
$ip::with('log')->blocked()->each(function ($ip) use ($now) {
4344
if (empty($ip->log)) {
4445
return;
4546
}

src/Config/firewall.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
'models' => [
1010
'user' => '\App\User',
11+
// 'log' => '\App\YourLogModel',
12+
// 'ip' => '\App\YourIpModel',
1113
],
1214

1315
'responses' => [

src/Listeners/BlockIp.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ public function handle(AttackDetected $event)
2121
$end = Carbon::now(config('app.timezone'));
2222
$start = $end->copy()->subSeconds(config('firewall.middleware.' . $event->log->middleware . '.auto_block.frequency'));
2323

24-
$count = Log::where('ip', $event->log->ip)->whereBetween('created_at', [$start, $end])->count();
24+
$log = config('firewall.models.log', Log::class);
25+
$count = $log::where('ip', $event->log->ip)->whereBetween('created_at', [$start, $end])->count();
2526

2627
if ($count != config('firewall.middleware.' . $event->log->middleware . '.auto_block.attempts')) {
2728
return;
2829
}
2930

30-
Ip::create([
31+
$ip = config('firewall.models.ip', Ip::class);
32+
$ip::create([
3133
'ip' => $event->log->ip,
3234
'log_id' => $event->log->id,
3335
]);

src/Middleware/Ip.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public function check($patterns)
1313
$status = false;
1414

1515
try {
16-
$status = Model::blocked($this->ip())->pluck('id')->first();
16+
$ip = config('firewall.models.ip', Model::class);
17+
$status = $ip::blocked($this->ip())->pluck('id')->first();
1718
} catch (QueryException $e) {
1819
// Base table or view not found
1920
//$status = ($e->getCode() == '42S02') ? false : true;

src/Traits/Helper.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ public function log($middleware = null, $user_id = null, $level = 'medium')
8686
$middleware = $middleware ?? $this->middleware;
8787
$user_id = $user_id ?? $this->user_id;
8888

89-
return Log::create([
89+
$log = config('firewall.models.log', Log::class);
90+
return $log::create([
9091
'ip' => $this->ip(),
9192
'level' => $level,
9293
'middleware' => $middleware,

0 commit comments

Comments
 (0)