shell bypass 403
<?php namespace Modules\Jobs\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Modules\Jobs\Http\Requests\JobAttributeStoreRequest; use Modules\Jobs\Http\Requests\JobAttributeUpdateRequest; abstract class JobAttributesController extends Controller { protected $model_class; protected $translates; protected $attr_route; public function __construct() { $this->model_class = $this->getmodel_class(); $this->translates = $this->getTranslates(); $this->attr_route = $this->getAttrRoute(); config(['oneresumecv.attributes.model_class' => $this->model_class]); config(['oneresumecv.attributes.translates' => $this->translates]); } abstract protected function getmodel_class(); abstract protected function getTranslates(); abstract protected function getAttrRoute(); public function index(Request $request) { $query = $this->model_class::query(); if ($request->filled('search')) { $query->where('name', 'like', '%' . $request->input('search') . '%'); } $paginationData = $query->paginate(10); return view('jobs::job_attributes.index', [ 'paginationData' => $paginationData, 'translates' => $this->translates, 'attr_route' => $this->attr_route, ]); } public function create(Request $request) { return view('jobs::job_attributes.create', [ 'translates' => $this->translates, 'attr_route' => $this->attr_route, ]); } public function store(JobAttributeStoreRequest $request) { $data = $request->validated(); $item = $this->model_class::create($data); if($item->is_default) { $this->model_class::where('id', '!=', $item->id)->update(['is_default' => false]); } return redirect()->route('settings.job.attributes.' . $this->attr_route . '.edit', ['id' => $item->id])->with('success', __('Created success !')); } public function edit(Request $request, $id) { $item = $this->model_class::findOrfail($id); return view('jobs::job_attributes.edit', [ 'item' => $item, 'translates' => $this->translates, 'attr_route' => $this->attr_route, ]); } public function update(JobAttributeUpdateRequest $request, $id) { $item = $this->model_class::findOrFail($id); $data = $request->validated(); $item->update($data); if($item->is_default) { $this->model_class::where('id', '!=', $item->id)->update(['is_default' => false]); } return redirect()->route('settings.job.attributes.' . $this->attr_route . '.edit', ['id' => $item->id])->with('success', __('Updated success !')); } public function destroy(Request $request, $id) { $item = $this->model_class::findOrFail($id); $item->delete(); return redirect()->back()->with('success', __('Deleted success !')); } public function show(Request $request, $id) { abort(404); } }