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

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