����JFIF��x�x����'403WebShell
403Webshell
Server IP : 66.29.137.217  /  Your IP : 18.117.121.71
Web Server : LiteSpeed
System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
User : gltevjme ( 1095)
PHP Version : 7.0.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/gltevjme/bofirmacademy.com/app/Http/Controllers/Admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gltevjme/bofirmacademy.com/app/Http/Controllers/Admin/PromotionController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\PromotionRequest;
use App\Models\Course;
use App\Models\Promotion;
use App\Models\PromotionCourse;
use App\Tools\Repositories\Crud;
use App\Traits\General;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class PromotionController extends Controller
{
    use General;
    protected $promotionModel, $promotionCourseModel;
    public function __construct(Promotion $promotion, PromotionCourse $promotionCourseModel)
    {
        $this->promotionModel = new Crud($promotion);
        $this->promotionCourseModel = new Crud($promotionCourseModel);
    }
    public function index()
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $data['title'] = 'Promotion List';
        $data['navPromotionParentActiveClass'] = 'mm-active';
        $data['subNavPromotionIndexActiveClass'] = 'mm-active';
        $data['promotions'] =  $this->promotionModel->getOrderById('DESC', 25);

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

    public function create()
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $data['title'] = 'Add Promotion';
        $data['navPromotionParentActiveClass'] = 'mm-active';
        $data['subNavAddPromotionActiveClass'] = 'mm-active';

        return view('admin.promotion.add', $data);
    }

    public function store(PromotionRequest $request)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $promotion = new Promotion();
        $promotion->name = $request->name;
        $promotion->start_date = $request->start_date;
        $promotion->end_date = $request->end_date;
        $promotion->percentage = $request->percentage;
        $promotion->status = $request->status ?? 0;
        $promotion->save();

        $this->showToastrMessage('success', __('Promotion created successfully'));
        return redirect()->route('promotion.index');
    }

    public function editPromotionCourse($uuid)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $data['title'] = 'Add Promotion Course';
        $data['navPromotionParentActiveClass'] = 'mm-active';
        $data['subNavAddPromotionActiveClass'] = 'mm-active';
        $data['promotion'] =  $this->promotionModel->getRecordByUuid($uuid);
        $data['promotionCourseIds'] =  PromotionCourse::where('promotion_id', $data['promotion']->id)->pluck('course_id')->toArray();
        $data['alreadyAddedPromotionCourseIds'] =  PromotionCourse::where('promotion_id', '!=', $data['promotion']->id)->pluck('course_id')->toArray();
        $data['courses'] =  Course::all();
        return view('admin.promotion.edit-promotion-course-list', $data);
    }

    public function show($uuid)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $data['title'] = 'Show Promotion Course List';
        $data['navPromotionParentActiveClass'] = 'mm-active';
        $data['subNavAddPromotionActiveClass'] = 'mm-active';
        $data['promotion'] =  $this->promotionModel->getRecordByUuid($uuid);

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

    public function edit($uuid)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $data['title'] = 'Edit Promotion';
        $data['navPromotionParentActiveClass'] = 'mm-active';
        $data['subNavAddPromotionActiveClass'] = 'mm-active';
        $data['promotion'] =  $this->promotionModel->getRecordByUuid($uuid);

        return view('admin.promotion.edit', $data);
    }

    public function update(PromotionRequest $request, $uuid)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $promotion = $this->promotionModel->getRecordByUuid($uuid);
        $promotion->name = $request->name;
        $promotion->start_date = $request->start_date;
        $promotion->end_date = $request->end_date;
        $promotion->percentage = $request->percentage;
        $promotion->status = $request->status;
        $promotion->save();

        $this->showToastrMessage('success', __('Promotion updated successfully'));
        return redirect()->route('promotion.index');
    }

    public function delete($uuid)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $promotion = $this->promotionModel->getRecordByUuid($uuid);
        if($promotion)
        {
            PromotionCourse::where('promotion_id', $promotion->id)->get()->map(function ($q) {
                $q->delete();
            });
        }

        $this->promotionModel->deleteByUuid($uuid);

        $this->showToastrMessage('success', __('Promotion deleted successfully'));
        return redirect()->back();

    }

    public function changePromotionStatus(Request $request)
    {
        if (!Auth::user()->can('manage_promotion')) {
            abort('403');
        } // end permission checking

        $promotion = $this->promotionModel->getRecordById($request->id);
        $promotion->status = $request->status;
        $promotion->save();

        return response()->json([
            'data' => 'success',
        ]);
    }

    public function addPromotionCourseList(Request $request)
    {
        $currentPromotionCourseList = PromotionCourse::where('promotion_id', $request->promotion_id)->where('course_id', $request->course_id)->first();
        if($currentPromotionCourseList) {
            return response()->json([
                'status' => '409',
                'msg' => 'Already added in promotion list!',
            ]);
        }

        $anotherPromotionCourseList = PromotionCourse::where('course_id', $request->course_id)->first();

        if ($anotherPromotionCourseList){
            return response()->json([
                'status' => '409',
                'msg' => 'Already added in another promotion list!'
            ]);
        } else {
            $promotionCourse = new PromotionCourse();
            $promotionCourse->course_id = $request->course_id;
            $promotionCourse->promotion_id = $request->promotion_id;
            $promotionCourse->save();

            return response()->json([
                'status' => '200',
                'msg' => 'Course Added in promotion list.',
                'course_id' => $request->course_id
            ]);
        }
    }

    public function removePromotionCourseList(Request $request)
    {
        $promotionCourse = PromotionCourse::where('course_id', $request->course_id)->first();
        if ($promotionCourse){
            PromotionCourse::where('course_id', $request->course_id)->delete();

            return response()->json([
                'status' => '200',
                'msg' => 'Course remove from promotion list.',
                'course_id' => $request->course_id
            ]);
        }

        return response()->json([
            'status' => '404',
            'msg' => 'Course not found!'
        ]);
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit