From 395fb23f6d0339dc1ad044e6a6ce61afe86c9a7e Mon Sep 17 00:00:00 2001 From: Dominik Hebeler <dominik@suma-ev.de> Date: Tue, 31 May 2022 12:46:56 +0200 Subject: [PATCH] fixed botoverview --- .../Http/Controllers/HumanVerification.php | 49 ++++-------- metager/app/Models/HumanVerification.php | 22 ++++++ .../humanverification/botOverview.blade.php | 78 ++++++++++++++++--- 3 files changed, 105 insertions(+), 44 deletions(-) diff --git a/metager/app/Http/Controllers/HumanVerification.php b/metager/app/Http/Controllers/HumanVerification.php index 5e2901598..eac448183 100644 --- a/metager/app/Http/Controllers/HumanVerification.php +++ b/metager/app/Http/Controllers/HumanVerification.php @@ -183,52 +183,35 @@ class HumanVerification extends Controller public function botOverview(Request $request) { - $id = ""; - $uid = ""; - $ip = $request->ip(); - if (\App\Http\Controllers\HumanVerification::couldBeSpammer($ip)) { - $id = hash("sha1", "999.999.999.999"); - $uid = hash("sha1", "999.999.999.999" . $ip . $_SERVER["AGENT"] . "uid"); - } else { - $id = hash("sha1", $ip); - $uid = hash("sha1", $ip . $_SERVER["AGENT"] . "uid"); - } - - $userList = Cache::get(HumanVerification::PREFIX . "." . $id); - $user = $userList[$uid]; + $human_verification = \app()->make(ModelsHumanVerification::class); return view('humanverification.botOverview') ->with('title', "Bot Overview") - ->with('ip', $ip) - ->with('userList', $userList) - ->with('user', $user); + ->with('ip', $request->ip()) + ->with('userList', $human_verification->getUserList()) + ->with('user', $human_verification->getUser()); } public function botOverviewChange(Request $request) { - $id = ""; - $uid = ""; - $ip = $request->ip(); - if (\App\Http\Controllers\HumanVerification::couldBeSpammer($ip)) { - $id = hash("sha1", "999.999.999.999"); - $uid = hash("sha1", "999.999.999.999" . $ip . $_SERVER["AGENT"] . "uid"); - } else { - $id = hash("sha1", $ip); - $uid = hash("sha1", $ip . $_SERVER["AGENT"] . "uid"); - } - - $userList = Cache::get(HumanVerification::PREFIX . "." . $id); - $user = $userList[$uid]; + $human_verification = \app()->make(ModelsHumanVerification::class); if ($request->filled("locked")) { - $user["locked"] = boolval($request->input('locked')); + if (\boolval($request->input("locked"))) { + $human_verification->lockUser(); + } else { + $human_verification->unlockUser(); + } } elseif ($request->filled("whitelist")) { - $user["whitelist"] = boolval($request->input('whitelist')); + if (\boolval($request->input("whitelist"))) { + $human_verification->verifyUser(); + } else { + $human_verification->unverifyUser(); + } } elseif ($request->filled("unusedResultPages")) { - $user["unusedResultPages"] = intval($request->input('unusedResultPages')); + $human_verification->setUnusedResultPage(intval($request->input('unusedResultPages'))); } - HumanVerification::saveUser($user); return redirect('admin/bot'); } diff --git a/metager/app/Models/HumanVerification.php b/metager/app/Models/HumanVerification.php index 0ffe1a680..ffe24c408 100644 --- a/metager/app/Models/HumanVerification.php +++ b/metager/app/Models/HumanVerification.php @@ -164,6 +164,18 @@ class HumanVerification } } + public function unverifyUser() + { + $this->user["whitelist"] = false; + $this->saveUser(); + } + + public function setUnusedResultPage($unusedResultPages) + { + $this->user["unusedResultPages"] = $unusedResultPages; + $this->saveUser(); + } + public function isWhiteListed() { return $this->user["whitelist"]; @@ -236,4 +248,14 @@ class HumanVerification { return sizeof($this->users); } + + public function getUser() + { + return $this->user; + } + + public function getUserList() + { + return $this->users; + } } diff --git a/metager/resources/views/humanverification/botOverview.blade.php b/metager/resources/views/humanverification/botOverview.blade.php index 32fe52c2d..0e32c35f4 100644 --- a/metager/resources/views/humanverification/botOverview.blade.php +++ b/metager/resources/views/humanverification/botOverview.blade.php @@ -4,27 +4,28 @@ @section('content') <style> - table form { - padding-top: 8px; - padding-bottom: 8px; - } - td:nth-child(1) { - padding-right: 8px; + .user { + width: max-content; + padding: 1rem; + border: 1px solid white; + background-color: #4a4a4a; + border-radius: 5px; } </style> + <div class="user"> <table> <tbody> <tr> <td>IP-Adresse</td> - <td><pre>{{$ip}}</pre></td> + <td>{{$ip}}</td> </tr> <tr> <td>ID</td> - <td><pre>{{$user["id"]}}</pre></td> + <td>{{$user["id"]}}</td> </tr> <tr> <td>User-ID</td> - <td><pre>{{$user["uid"]}}</pre></td> + <td>{{$user["uid"]}}</td> </tr> <tr> <td>Unused Resultpages</td> @@ -62,9 +63,64 @@ </tr> <tr> <td>Expiration</td> - <td><pre>{{$user["expiration"]}}</pre></td> + <td><pre>{{$user["expiration"]->format("d.m.Y H:i:s")}}</pre></td> + </tr> + </tbody> + </table> + </div> + @foreach($userList as $user_current) + @if($user_current["uid"] === $user["uid"]) + @continue + @endif + <div class="user"> + <h3>{{$user_current["uid"]}}</h3> + <table> + <tbody> + <tr> + <td>ID</td> + <td>{{$user_current["id"]}}</td> + </tr> + <tr> + <td>Unused Resultpages</td> + <td> + <form action="" method="post"> + <input type="number" name="unusedResultPages" id="unusedResultPages" readonly value="{{$user_current["unusedResultPages"]}}"> + </form> + </td> + </tr> + <tr> + <td>Whitelist</td> + <td> + <form action="" method="post"> + <select name="whitelist" id="locked" disabled> + <option value="1" @if($user_current["whitelist"]) selected @endif >True</option> + <option value="0" @if(!$user_current["whitelist"]) selected @endif >False</option> + </select> + </form> + </td> + </tr> + <tr> + <td>Locked</td> + <td> + <form action="" method="post"> + <select name="locked" id="locked" disabled> + <option value="1" @if($user_current["locked"]) selected @endif>True</option> + <option value="0" @if(!$user_current["locked"]) selected @endif>False</option> + </select> + </form> + </td> + </tr> + <tr> + <td>Locked Key</td> + <td><pre>{{$user_current["lockedKey"]}}</pre></td> + </tr> + <tr> + <td>Expiration</td> + <td><pre>{{$user_current["expiration"]->format("d.m.Y H:i:s")}}</pre></td> </tr> </tbody> </table> - {{ dd($userList) }} + </div> + @endforeach + @endsection -- GitLab