Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

HDInnovations/UNIT3D-Community-Edition

2239 stars
3 code files
View HDInnovations/UNIT3D-Community-Edition on GitHub

app/Http/Controllers/Staff/BanController.php

Open in GitHub
use App\Http\Controllers\Controller;
use App\Mail\BanUser;
use App\Models\Ban;
use App\Models\Group;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
 
class BanController extends Controller
{
//
public function store(Request $request, $username)
{
$user = User::where('username', '=', $username)->firstOrFail();
$staff = $request->user();
$bannedGroup = \cache()->rememberForever('banned_group', fn () => Group::where('slug', '=', 'banned')->pluck('id'));
 
\abort_if($user->group->is_modo || $request->user()->id == $user->id, 403);
 
$user->group_id = $bannedGroup[0];
$user->can_upload = 0;
$user->can_download = 0;
$user->can_comment = 0;
$user->can_invite = 0;
$user->can_request = 0;
$user->can_chat = 0;
 
$ban = new Ban();
$ban->owned_by = $user->id;
$ban->created_by = $staff->id;
$ban->ban_reason = $request->input('ban_reason');
 
$v = \validator($ban->toArray(), [
'ban_reason' => 'required',
]);
 
if ($v->fails()) {
return \redirect()->route('users.show', ['username' => $user->username])
->withErrors($v->errors());
}
$user->save();
$ban->save();
// Send Email
Mail::to($user->email)->send(new BanUser($user->email, $ban));
 
return \redirect()->route('users.show', ['username' => $user->username])
->withSuccess('User Is Now Banned!');
}
//
}

app/Mail/BanUser.php

Open in GitHub
use Illuminate\Mail\Mailable;
 
class BanUser extends Mailable
{
public function __construct(public $email, public $ban)
{
}
 
public function build()
{
return $this->markdown('emails.ban')
->subject('You Have Been Banned - '.\config('other.title'));
}
}

resources/views/emails/ban.blade.php

Open in GitHub
@component('mail::message')
# @lang('email.banned-header')!
**Reason:** {{ $ban->ban_reason }}
*@lang('email.banned-footer')*
@endcomponent

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.