From a4f7a44784da824add10aef1a27cb95ea2a04850 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Wed, 16 Oct 2024 17:26:06 +0200 Subject: [PATCH] Network operators now only see their own and their providers Preorders --- application/Preorder/PreorderController.php | 6 ++++++ application/Preorder/PreorderModel.php | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/application/Preorder/PreorderController.php b/application/Preorder/PreorderController.php index 3065fd5d2..54bec1748 100644 --- a/application/Preorder/PreorderController.php +++ b/application/Preorder/PreorderController.php @@ -135,9 +135,15 @@ class PreorderController extends mfBaseController { if(is_numeric($campaign_id) && $campaign_id > 0) { $campaign = new Preordercampaign($campaign_id); $this->layout()->set("campaign", $campaign); + + if($campaign->owner_id != $this->me->address_id) { + $filter["operator_id"] = $this->me->address_id; + } + } } else { $filter['preordercampaign_id'] = $my_campaign_ids; + $filter["operator_id"] = $this->me->address_id; } if(!$filter['preordercampaign_id']) $filter['preordercampaign_id'] = 0; diff --git a/application/Preorder/PreorderModel.php b/application/Preorder/PreorderModel.php index 2441c8d0b..ab2313599 100644 --- a/application/Preorder/PreorderModel.php +++ b/application/Preorder/PreorderModel.php @@ -549,6 +549,18 @@ class PreorderModel { $where .= " AND tt_preorder.adb_wohneinheit_id IS NOT NULL AND tt_preorder.adb_wohneinheit_id > 0"; } } + + if(array_key_exists("operator_id", $filter)) { + $operator_id = $filter['operator_id']; + if(is_numeric($operator_id)) { + $where .= " AND partner_id IN ( + SELECT PreordercampaignOperatorIsp.isp_id as isp_id + FROM PreordercampaignOperatorIsp + LEFT JOIN PreordercampaignOperator ON (PreordercampaignOperatorIsp.campaignoperator_id = PreordercampaignOperator.id) + WHERE operator_id = $operator_id + )"; + } + } if(array_key_exists("product_id", $filter)) { $product_id = $filter['product_id'];