shell bypass 403
<?php
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Response;
use Illuminate\Support\Str;
use App\Models\Color;
use App\Models\Product;
use App\Models\ColorImage;
class ColorImageController extends Controller
{
//
public function __construct()
{
$this->middleware('auth');
$this->middleware('isAdmin');
}
public function index()
{
// Colors Images
$data['colorimages'] = ColorImage::all();
// Colors
$data['colors'] = Color::all();
// Product
$data['products'] = Product::where('product_status', 1)->get();
return view('admin/color_images',$data);
}
public function insert(Request $req)
{
$validation = Validator::make($req->all(),[
'proName' => 'required',
'colorName' => 'required',
// 'colorfrontImage' => 'image|mimes:jpg,png,jpeg,PNG|max:15000',
// 'colorbackImage' => 'image|mimes:jpg,png,jpeg,PNG|max:15000',
'colorImages[]' => 'image|mimes:jpg,png,jpeg|max:15000',
],[
'proName.required' => 'Select Product Name',
'colorName.required' => 'Select Color Name',
'colorfrontImage.image' => 'Front Image Must In Image Formate',
'colorfrontImage.mimes' => 'Front Image Type In JPG, PNG & JPEG',
'colorfrontImage.max' => 'Front Image Maximum Size Is 15 MB',
'colorbackImage.image' => 'Back Image Must In Image Formate',
'colorbackImage.mimes' => 'Back Image Type In JPG, PNG & JPEG',
'colorbackImage.max' => 'Back Image Maximum Size Is 15 MB',
'colorImages.image' => 'Color Image Must In Image Formate',
'colorImages.mimes' => 'Color Image Type In JPG, PNG & JPEG',
'colorImages.max' => 'Color Image Maximum Size Is 15 MB',
]);
if (!$validation->passes())
{
return response()->json(['error'=>$validation->errors()]);
}
else
{
$AddImages = new ColorImage;
$AddImages->product_id = $req->proName;
$AddImages->color_id = $req->colorName;
$AddImages->status = $req->Status;
if($req->hasFile('colorfrontImage'))
{
$file = $req->file('colorfrontImage');
$extension = $file->getClientOriginalExtension();
$fileName = time().'.'.$extension;
$file->storeAs('public/images',$fileName);
$AddImages->color_front_image = $fileName;
}
if($req->hasFile('colorbackImage'))
{
$file = $req->file('colorbackImage');
$extension = $file->getClientOriginalExtension();
$fileName = rand(1111,9999).'.'.$extension;
$file->storeAs('public/images',$fileName);
$AddImages->color_back_image = $fileName;
}
// if($req->file('colorImages'))
// {
// $gallery = [];
// foreach ($req->file('colorImages') as $key => $file) {
// $imageName = $file->getClientOriginalName();
// $file->storeAs('public/images',$imageName);
// $gallery[] = $imageName;
// }
// $images = json_encode($gallery);
// $AddImages->color_images = $images;
// }
$AddImages->save();
return response()->json(['success'=>'Images Upload Successfully']);
}
}
public function update(Request $req)
{
$validation = Validator::make($req->all(),[
'UpdtproName' => 'required',
'UpdtcolorName' => 'required',
// 'UpdtcolorfrontImage' => 'image|mimes:jpg,png,jpeg,PNG|max:15000',
// 'UpdtcolorbackImage' => 'image|mimes:jpg,png,jpeg,PNG|max:15000',
// 'UpdtcolorImages[]' => 'image|mimes:jpg,png,jpeg|max:15000',
],[
'proName.required' => 'Select Product Name',
'colorName.required' => 'Select Color Name',
'UpdtcolorfrontImage.image' => 'Front Image Must In Image Formate',
'UpdtcolorfrontImage.mimes' => 'Front Image Type In JPG, PNG & JPEG',
'UpdtcolorfrontImage.max' => 'Front Image Maximum Size Is 15 MB',
'UpdtcolorbackImage.image' => 'Back Image Must In Image Formate',
'UpdtcolorbackImage.mimes' => 'Back Image Type In JPG, PNG & JPEG',
'UpdtcolorbackImage.max' => 'Back Image Maximum Size Is 15 MB',
'UpdtcolorImages.image' => 'Color Image Must In Image Formate',
'UpdtcolorImages.mimes' => 'Color Image Type In JPG, PNG & JPEG',
'UpdtcolorImages.max' => 'Color Image Maximum Size Is 15 MB',
]);
if(!$validation->passes())
{
return response()->json(['error'=>$validation->errors()]);
}
else
{
$id = $req->UpdtcolImgId;
$UpdateImage = ColorImage::find($id);
$UpdateImage->product_id = $req->UpdtproName;
$UpdateImage->color_id = $req->UpdtcolorName;
$UpdateImage->status = $req->updtcolorStatus;
if($req->hasFile('UpdtcolorfrontImage'))
{
$file = $req->file('UpdtcolorfrontImage');
$extension = $file->getClientOriginalExtension();
$fileName = time().'.'.$extension;
$file->storeAs('public/images',$fileName);
$UpdateImage->color_front_image = $fileName;
if($req->PrevcolorfrontImage)
{
unlink(public_path('storage/images/'.$req->PrevcolorfrontImage));
}
}
elseif($req->removeColfImg == true)
{
$UpdateImage->color_front_image = null;
}
else
{
$UpdateImage->color_front_image = $req->PrevcolorfrontImage;
}
if($req->hasFile('UpdtcolorbackImage'))
{
$file = $req->file('UpdtcolorbackImage');
$extension = $file->getClientOriginalExtension();
$fileName = rand(1111,9999).'.'.$extension;
$file->storeAs('public/images',$fileName);
$UpdateImage->color_back_image = $fileName;
if($req->PrevcolorbackImage)
{
unlink(public_path('storage/images/'.$req->PrevcolorbackImage));
}
}
elseif($req->removeColbImg == true)
{
$UpdateImage->color_back_image = null;
}
else
{
$UpdateImage->color_back_image = $req->PrevcolorbackImage;
}
if($req->file('UpdtcolorImages'))
{
$gallery = [];
foreach ($req->file('UpdtcolorImages') as $key => $file) {
$imageName = $file->getClientOriginalName();
$file->storeAs('public/images',$imageName);
$gallery[] = $imageName;
}
$images = json_encode($gallery);
$UpdateImage->color_images = $images;
}
elseif($req->removeColImgs == true)
{
$UpdateImage->color_images = null;
}
else
{
$UpdateImage->color_images = $req->PrevcolorImages;
}
$UpdateImage->save();
return response()->json(['success'=>'Images Update Successfully']);
}
}
public function delete(Request $req)
{
$id = $req->id;
$DeleteColorImg = ColorImage::find($id);
$DeleteColorImg->delete();
}
}