Просмотр файла app/Http/Controllers/Admin/BanhistController.php

Размер файла: 2.19Kb
  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\Banhist;
  9. use Illuminate\Http\RedirectResponse;
  10. use Illuminate\Http\Request;
  11. use Illuminate\View\View;
  12.  
  13. class BanhistController extends AdminController
  14. {
  15. /**
  16. * Главная страница
  17. *
  18. * @return View
  19. */
  20. public function index(): View
  21. {
  22. $records = Banhist::query()
  23. ->orderByDesc('created_at')
  24. ->with('user', 'sendUser')
  25. ->paginate(setting('listbanhist'));
  26.  
  27. return view('admin/banhists/index', compact('records'));
  28. }
  29.  
  30. /**
  31. * История банов
  32. *
  33. * @param Request $request
  34. *
  35. * @return View
  36. */
  37. public function view(Request $request): View
  38. {
  39. $user = getUserByLogin($request->input('user'));
  40.  
  41. if (! $user) {
  42. abort(404, __('validator.user'));
  43. }
  44.  
  45. $banhist = Banhist::query()
  46. ->where('user_id', $user->id)
  47. ->orderByDesc('created_at')
  48. ->with('user', 'sendUser')
  49. ->paginate(setting('listbanhist'))
  50. ->appends(['user' => $user->login]);
  51.  
  52. return view('admin/banhists/view', compact('user', 'banhist'));
  53. }
  54.  
  55. /**
  56. * Удаление банов
  57. *
  58. * @param Request $request
  59. * @param Validator $validator
  60. *
  61. * @return RedirectResponse
  62. */
  63. public function delete(Request $request, Validator $validator): RedirectResponse
  64. {
  65. $page = int($request->input('page', 1));
  66. $del = intar($request->input('del'));
  67. $login = $request->input('user');
  68.  
  69. $validator->equal($request->input('_token'), csrf_token(), __('validator.token'))
  70. ->true($del, __('validator.deletion'));
  71.  
  72. if ($validator->isValid()) {
  73. Banhist::query()->whereIn('id', $del)->delete();
  74.  
  75. setFlash('success', __('main.records_deleted_success'));
  76. } else {
  77. setFlash('danger', $validator->getErrors());
  78. }
  79.  
  80. if ($login) {
  81. return redirect('admin/banhists/view?user=' . $login . '&page=' . $page);
  82. }
  83.  
  84. return redirect('admin/banhists?page=' . $page);
  85. }
  86. }