• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

visavi / rotor / 28340133337

28 Jun 2026 11:47PM UTC coverage: 16.561% (+0.09%) from 16.474%
28340133337

push

github

visavi
Ядро и модули переведены на datetime, удалена константа SITETIME

18 of 95 new or added lines in 31 files covered. (18.95%)

7 existing lines in 6 files now uncovered.

989 of 5972 relevant lines covered (16.56%)

2.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/app/Http/Controllers/Admin/IpBanController.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace App\Http\Controllers\Admin;
6

7
use App\Classes\Validator;
8
use App\Models\Ban;
9
use App\Models\User;
10
use Illuminate\Http\RedirectResponse;
11
use Illuminate\Http\Request;
12
use Illuminate\View\View;
13

14
class IpBanController extends AdminController
15
{
16
    /**
17
     * Главная страница
18
     */
19
    public function index(Request $request, Validator $validator): View|RedirectResponse
×
20
    {
21
        if ($request->isMethod('post')) {
×
22
            $ip = $request->input('ip');
×
23

24
            $validator->ip($ip, ['ip' => __('admin.ipbans.ip_invalid')]);
×
25

26
            $duplicate = Ban::query()->where('ip', $ip)->first();
×
27
            $validator->empty($duplicate, ['ip' => __('admin.ipbans.ip_exists')]);
×
28

29
            if ($validator->isValid()) {
×
30
                Ban::query()->create([
×
31
                    'ip'         => $ip,
×
32
                    'user_id'    => getUser('id'),
×
NEW
33
                    'created_at' => now(),
×
34
                ]);
×
35

36
                clearCache('ipBan');
×
37

38
                setFlash('success', __('admin.ipbans.ip_success_added'));
×
39

40
                return redirect('admin/ipbans');
×
41
            }
42

43
            setInput($request->all());
×
44
            setFlash('danger', $validator->getErrors());
×
45
        }
46

47
        $logs = Ban::query()
×
48
            ->orderByDesc('created_at')
×
49
            ->with('user')
×
50
            ->paginate(setting('ipbanlist'));
×
51

52
        return view('admin/ipbans/index', compact('logs'));
×
53
    }
54

55
    /**
56
     * Удаление ip
57
     */
58
    public function delete(Request $request, Validator $validator): RedirectResponse
×
59
    {
60
        $page = int($request->input('page', 1));
×
61
        $del = intar($request->input('del'));
×
62

63
        $validator->true($del, __('validator.deletion'));
×
64

65
        if ($validator->isValid()) {
×
66
            Ban::query()->whereIn('id', $del)->delete();
×
67
            clearCache('ipBan');
×
68

69
            setFlash('success', __('admin.ipbans.ip_selected_deleted'));
×
70
        } else {
71
            setFlash('danger', $validator->getErrors());
×
72
        }
73

74
        return redirect('admin/ipbans?page=' . $page);
×
75
    }
76

77
    /**
78
     * Очистка ip
79
     */
80
    public function clear(Validator $validator): RedirectResponse
×
81
    {
82
        $validator->true(isAdmin(User::BOSS), __('main.page_only_owner'));
×
83

84
        if ($validator->isValid()) {
×
85
            Ban::query()->truncate();
×
86
            clearCache('ipBan');
×
87

88
            setFlash('success', __('admin.ipbans.ip_success_cleared'));
×
89
        } else {
90
            setFlash('danger', $validator->getErrors());
×
91
        }
92

93
        return redirect()->route('admin.ipbans.index');
×
94
    }
95
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc