Вход Регистрация
Файл: app/Http/Controllers/User/BanController.php
Строк: 71
<?php

declare(strict_types=1);

namespace 
AppHttpControllersUser;

use 
AppClassesValidator;
use 
AppHttpControllersController;
use 
AppModelsBanhist;
use 
AppModelsUser;
use 
IlluminateHttpRedirectResponse;
use 
IlluminateHttpRequest;
use 
IlluminateViewView;

class 
BanController extends Controller
{
    
/**
     * User Ban
     */
    
public function ban(Request $request, Validator $validator): View|RedirectResponse
    
{
        if (! 
$user = getUser()) {
            
abort(403, __('main.not_authorized'));
        }

        if (
$user->level !== User::BANNED) {
            
abort(200, __('users.not_banned'));
        }

        if (! 
$user->timeban || $user->timeban->lte(now())) {
            
$user->update([
                
'level'   => User::USER,
                
'timeban' => null,
            ]);

            return 
redirect('/')
                ->
with('success', __('users.ban_expired'));
        }

        
$banhist = Banhist::query()
            ->
where('user_id', $user->id)
            ->
whereIn('type', ['ban', 'change'])
            ->
orderByDesc('created_at')
            ->
first();

        if (
$banhist && $request->isMethod('post')) {
            
$msg = $request->input('msg');

            
$admins = User::query()->whereIn('level', [User::BOSS, User::ADMIN])->get();

            
$validator
                
->true(setting('addbansend'), __('users.explain_forbidden'))
                ->
false($banhist->explain, __('users.explain_repeat'))
                ->
true($admins->isNotEmpty(), __('users.admins_not_found'))
                ->
length($msg, 5, 1000, ['text' => __('validator.text')]);

            if (
$validator->isValid()) {
                
$text = textNotice('explain', ['message' => antimat($msg)]);

                foreach (
$admins as $admin) {
                    
$admin->sendMessage($user, $text, false);
                }

                
$banhist->update([
                    
'explain' => 1,
                ]);

                return 
redirect('ban')
                    ->
with('success', __('users.explain_sent_success'));
            }

            return 
redirect('ban')
                ->
withInput()
                ->
withErrors($validator->getErrors());
        }

        return 
view('users/bans', compact('user', 'banhist'));
    }
}
Онлайн: 2
Реклама