From 9b9157d8b4b6051aa9e42c16ddee18d84eaac76c Mon Sep 17 00:00:00 2001 From: Muammer Top Date: Mon, 30 Nov 2020 15:47:08 +0300 Subject: [PATCH] #2336 redirect ad detail link if slug is different --- .../visiosoft/advs-module/src/Adv/AdvModel.php | 6 ++---- .../src/Http/Controller/advsController.php | 17 +++++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php index 3998afffa..4091e363e 100644 --- a/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php +++ b/addons/default/visiosoft/advs-module/src/Adv/AdvModel.php @@ -218,13 +218,11 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface { if ($type != null) { $id = $object->id; - $seo = str_slug($object->name); - $seo = str_replace('_', '-', $seo); + $seo = str_slug($object->slug, '-'); return \route('adv_detail_seo', [$seo, $id]); } $id = $object->getObject()->id; - $seo = str_slug($object->getObject()->name); - $seo = str_replace('_', '-', $seo); + $seo = str_slug($object->getObject()->name, '-'); return \route('adv_detail_seo', [$seo, $id]); } diff --git a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php index 6704aef1d..8703e798f 100644 --- a/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php +++ b/addons/default/visiosoft/advs-module/src/Http/Controller/advsController.php @@ -10,6 +10,7 @@ use Illuminate\Contracts\Events\Dispatcher; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cookie; +use Illuminate\Support\Str; use Visiosoft\AdvsModule\Adv\AdvModel; use Visiosoft\AdvsModule\Adv\Contract\AdvRepositoryInterface; use Visiosoft\AdvsModule\Adv\Event\ChangedStatusAd; @@ -579,12 +580,16 @@ class AdvsController extends PublicController $configurations = $this->optionConfigurationRepository->getConf($adv->id); - if ($adv->created_by_id == isset(auth()->user()->id) or $adv->status == "approved") { - return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', - 'recommended_advs', 'categories', 'features', 'options', 'configurations')); - } else { - return back(); - } + + if (Str::slug($adv->slug, '-') != $seo) { + $this->messages->error(trans('visiosoft.module.advs::message.ad_doesnt_exist')); + return redirect()->route('visiosoft.module.advs::list'); + } else if ($adv->created_by_id == isset(auth()->user()->id) or $adv->status == "approved") { + return $this->view->make('visiosoft.module.advs::ad-detail/detail', compact('adv', 'complaints', + 'recommended_advs', 'categories', 'features', 'options', 'configurations')); + } else { + return back(); + } } else { $this->messages->error(trans('visiosoft.module.advs::message.ad_doesnt_exist')); return redirect()->route('visiosoft.module.advs::list');