shell bypass 403

UnknownSec Shell


name : WaitlistController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Exports\AgoraHistoryExport;
use App\Exports\WaitlistItemsExport;
use App\Exports\WaitlistsExport;
use App\Http\Controllers\Controller;
use App\Models\Waitlist;
use App\Models\Webinar;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;

class WaitlistController extends Controller
{
    public function index(Request $request)
    {
        $this->authorize('admin_waitlists_lists');

        $waitlists = Webinar::query()
            ->where('enable_waitlist', true)
            ->paginate(10);

        foreach ($waitlists as $waitlist) {
            $query = Waitlist::query()->where('webinar_id', $waitlist->id);

            $waitlist->members = deepClone($query)->count();
            $waitlist->registered_members = deepClone($query)->whereNotNull('user_id')->count();

            $lastSubmission = deepClone($query)->orderBy('created_at', 'desc')->first();

            if (!empty($lastSubmission)) {
                $waitlist->last_submission = $lastSubmission->created_at;
            }
        }

        $data = [
            'pageTitle' => trans('update.waitlists'),
            'waitlists' => $waitlists
        ];

        return view('admin.waitlists.index', $data);
    }

    public function exportExcel(Request $request)
    {
        $this->authorize('admin_waitlists_exports');

        $waitlists = Webinar::query()
            ->where('enable_waitlist', true)
            ->get();

        foreach ($waitlists as $waitlist) {
            $query = Waitlist::query()->where('webinar_id', $waitlist->id);

            $waitlist->members = deepClone($query)->count();
            $waitlist->registered_members = deepClone($query)->whereNotNull('user_id')->count();

            $lastSubmission = deepClone($query)->orderBy('created_at', 'desc')->first();

            if (!empty($lastSubmission)) {
                $waitlist->last_submission = $lastSubmission->created_at;
            }
        }

        $export = new WaitlistsExport($waitlists);

        return Excel::download($export, 'waitlists.xlsx');
    }

    public function viewList(Request $request, $webinarId, $justReturnQuery = false)
    {
        $this->authorize('admin_waitlists_users');

        $webinar = Webinar::query()->findOrFail($webinarId);

        $query = Waitlist::query()->where('webinar_id', $webinarId);

        $from = $request->get('from');
        $to = $request->get('to');
        $search = $request->get('search');
        $registrationStatus = $request->get('registration_status');

        $query = fromAndToDateFilter($from, $to, $query, 'created_at');

        if (!empty($search)) {
            $query->where(function ($query) use ($search) {
                $query->where('full_name', 'like', "%$search%");
                $query->orWhereHas('user', function ($query) use ($search) {
                    $query->where('full_name', 'like', "%$search%");
                });
            });
        }

        if (!empty($registrationStatus)) {
            if ($registrationStatus == 'registered') {
                $query->whereNotNull('user_id');
            } else if ($registrationStatus == 'unregistered') {
                $query->whereNull('user_id');
            }
        }

        if ($justReturnQuery) {
            return $query;
        }

        $waitlists = $query
            ->with(['user'])
            ->orderBy('created_at', 'desc')
            ->paginate(10);

        $data = [
            'pageTitle' => trans('update.waitlists') . ' - ' . $webinar->title,
            'waitlists' => $waitlists,
            'waitlistId' => $webinarId,
            'webinarTitle' => $webinar->title,
        ];

        return view('admin.waitlists.users_list', $data);
    }

    public function clearList(Request $request, $webinarId)
    {
        $this->authorize('admin_waitlists_clear_list');

        Waitlist::query()->where('webinar_id', $webinarId)
            ->delete();

        $toastData = [
            'title' => trans('public.request_success'),
            'msg' => trans('update.waitlist_cleared_successful'),
            'status' => 'success'
        ];
        return back()->with(['toast' => $toastData]);
    }

    public function disableWaitlist(Request $request, $webinarId)
    {
        $this->authorize('admin_waitlists_disable');

        $webinar = Webinar::query()->findOrFail($webinarId);

        $webinar->update([
            'enable_waitlist' => false
        ]);

        $toastData = [
            'title' => trans('public.request_success'),
            'msg' => trans('update.waitlist_disabled_successful'),
            'status' => 'success'
        ];
        return back()->with(['toast' => $toastData]);
    }

    public function exportUsersList(Request $request, $webinarId)
    {
        $this->authorize('admin_waitlists_exports');

        $waitlists = $this->viewList($request, $webinarId, true)
            ->with(['user'])
            ->orderBy('created_at', 'desc')
            ->get();

        $export = new WaitlistItemsExport($waitlists);

        return Excel::download($export, 'waitlist_items.xlsx');
    }


    public function deleteWaitlistItems($waitlistId)
    {
        $this->authorize('admin_waitlists_users');

        Waitlist::query()
            ->where('id', $waitlistId)
            ->delete();

        $toastData = [
            'title' => trans('public.request_success'),
            'msg' => trans('update.waitlist_item_deleted_successful'),
            'status' => 'success'
        ];
        return back()->with(['toast' => $toastData]);
    }
}

© 2025 UnknownSec
Courses | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar

Courses

17 Courses
Course
How to Manage Your Virtual Team

How to Manage Your Virtual Team

in Communications
3.75
1:30 Hours
30 Jun 2021
₹59
20% Offer
Excel from Beginner to Advanced

Excel from Beginner to Advanced

in Management
4.75
1:40 Hours
20 Mar 2026
₹94.40 ₹118
Text course
Learn Python Programming

Learn Python Programming

in Web Development
5.00
0:35 Hours
29 Jun 2021
Free
Finished
Learn Linux in 5 Days

Learn Linux in 5 Days

in Web Development
4.00
7:30 Hours
10 Jul 2021
Free
Course
Become a Product Manager

Become a Product Manager

in Business Strategy
4.58
2:30 Hours
28 Jun 2021
Free

Type

More options