checking permissions in Preorder/Index

This commit is contained in:
Frank Schubert
2022-11-22 17:06:48 +01:00
parent 5531b69f65
commit 520e68b44b
8 changed files with 54 additions and 53 deletions

View File

@@ -16,7 +16,7 @@
<li class="breadcrumb-item active">Vorbestellungen</li> <li class="breadcrumb-item active">Vorbestellungen</li>
</ol> </ol>
</div> </div>
<h4 class="page-title">Vorbestellungen<?=($campaign) ? " - ".$campaign->name : ""?></h4> <h4 class="page-title">Vorbestellungen<?=(isset($campaign) && $campaign) ? " - ".$campaign->name : ""?></h4>
</div> </div>
</div> </div>
</div> </div>
@@ -36,8 +36,8 @@
<label class="form-label" for="filter_preordercampaign_id">Kampagne</label> <label class="form-label" for="filter_preordercampaign_id">Kampagne</label>
<select name="filter[preordercampaign_id]" id="filter_preordercampaign_id" class="form-control"> <select name="filter[preordercampaign_id]" id="filter_preordercampaign_id" class="form-control">
<option value="">Alle</option> <option value="">Alle</option>
<?php foreach(PreordercampaignModel::getAll() as $c): ?> <?php foreach($my_campaigns as $c): ?>
<option value="<?=$c->id?>" <?=($c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option> <option value="<?=$c->id?>" <?=(isset($campaign) && $c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option>
<?php endforeach; ?> <?php endforeach; ?>
</select> </select>
</div> </div>
@@ -66,7 +66,7 @@
<label class="form-label" for="filter_addon_services">Zusatzdienste</label> <label class="form-label" for="filter_addon_services">Zusatzdienste</label>
<select name="filter[addon_services]" id="filter_addon_services" class="form-control"> <select name="filter[addon_services]" id="filter_addon_services" class="form-control">
<option></option> <option></option>
<option value="1" <?=($filter['addon_services'] == 1) ? "selected='selected'" : ""?>>Nur mit Zusatzdiensten</option> <option value="1" <?=(array_key_exists("addon_services", $filter) && $filter['addon_services'] == 1) ? "selected='selected'" : ""?>>Nur mit Zusatzdiensten</option>
</select> </select>
</div> </div>
@@ -102,7 +102,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="float-left"> <div class="float-left">
<h4 class="header-title">Liste aller Vorbestellungen<?=($campaign) ? " - ".$campaign->name : ""?></h4> <h4 class="header-title">Liste aller Vorbestellungen<?=(isset($campaign) && $campaign) ? " - ".$campaign->name : ""?></h4>
</div> </div>
<?php if($filter['preordercampaign_id']): ?> <?php if($filter['preordercampaign_id']): ?>
<div class="float-right"> <div class="float-right">

View File

@@ -114,19 +114,21 @@ class AddresstypeModel {
/* /*
* Address Type * Address Type
*/ */
if(is_array($filter['addresstype']) && count($filter['addresstype'])) { if(array_key_exists('addresstype', $filter)) {
$at = $filter['addresstype']; if(is_array($filter['addresstype']) && count($filter['addresstype'])) {
$in = []; $at = $filter['addresstype'];
foreach(TT_ROLES as $role) { $in = [];
if(in_array($role, $at)) { foreach(TT_ROLES as $role) {
$in[] = "Addresstype.type = '$role'"; if(in_array($role, $at)) {
$in[] = "Addresstype.type = '$role'";
}
}
$or = "";
if(count($in)) {
$or = implode(" OR ", $in);
$where .= " AND ( $or )";
} }
}
$or = "";
if(count($in)) {
$or = implode(" OR ", $in);
$where .= " AND ( $or )";
} }
} }

View File

@@ -89,7 +89,6 @@ class NetworkAddressModel {
$where = self::getSqlFilter($filter); $where = self::getSqlFilter($filter);
$sql = "SELECT * FROM NetworkAddress WHERE $where ORDER BY `type`"; $sql = "SELECT * FROM NetworkAddress WHERE $where ORDER BY `type`";
mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql); $res = $db->query($sql);
//$res = $db->select("NetworkAddress", "*", "$where ORDER BY `type`"); //$res = $db->select("NetworkAddress", "*", "$where ORDER BY `type`");
if($db->num_rows($res)) { if($db->num_rows($res)) {
@@ -137,24 +136,6 @@ class NetworkAddressModel {
} }
if(is_array($filter['addresstype']) && count($filter['addresstype'])) {
/*$at = $filter['addresstype'];
$in = [];
foreach(TT_ROLES as $role) {
if(in_array($role, $at)) {
$role = $db->escape($role);
$in[] = "NetworkAddress.type = '$role'";
}
}
$or = "";
if(count($in)) {
$or = implode(" OR ", $in);
$where .= " AND ( $or )";
}*/
}
//var_dump($filter, $where);exit; //var_dump($filter, $where);exit;
return $where; return $where;

View File

@@ -37,19 +37,40 @@ class PreorderController extends mfBaseController {
$pagination['start'] = intval($this->request->s); $pagination['start'] = intval($this->request->s);
} }
$campaign_filter = []; $preorder_filter = $filter;
$my_campaigns = [];
$my_campaign_ids = [];
if($filter['preordercampaign_id']) { if($this->me->is("Admin")) {
$campaign_id = $filter['preordercampaign_id']; if($filter['preordercampaign_id']) {
if(is_numeric($campaign_id) && $campaign_id > 0) { $this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id']));
$campaign = new Preordercampaign($campaign_id); } else {
$this->layout()->set("campaign", $campaign); $my_campaigns = PreordercampaignModel::getAll();
}
$this->layout()->set("my_campaigns", PreordercampaignModel::getAll());
} else {
$my_networks = $this->me->myNetworks(["netowner", "salespartner"]);
//var_dump($my_networks);exit;
foreach($my_networks as $network) {
foreach(PreordercampaignModel::search(['network_id' => $network->id]) as $campaign) {
$my_campaigns[] = $campaign;
if(!in_array($campaign->id, $my_campaign_ids)) $my_campaign_ids[] = $campaign->id;
}
}
//var_dump($my_network_ids,$my_campaign_ids);exit;
$this->layout()->set("my_campaigns", $my_campaigns);
if($filter['preordercampaign_id'] && in_array($filter['preordercampaign_id'], $my_campaign_ids)) {
$campaign_id = $filter['preordercampaign_id'];
if(is_numeric($campaign_id) && $campaign_id > 0) {
$campaign = new Preordercampaign($campaign_id);
$this->layout()->set("campaign", $campaign);
}
} else {
$filter['preordercampaign_id'] = $my_campaign_ids;
} }
} }
//var_dump($filter);exit;
if($filter['addon_services']) { if($filter['addon_services']) {
$pagination['maxItems'] = PreorderModel::countOrderedAddonservices($filter); $pagination['maxItems'] = PreorderModel::countOrderedAddonservices($filter);

View File

@@ -242,6 +242,8 @@ class PreorderModel {
$preordercampaign_id = $filter['preordercampaign_id']; $preordercampaign_id = $filter['preordercampaign_id'];
if(is_numeric($preordercampaign_id)) { if(is_numeric($preordercampaign_id)) {
$where .= " AND preordercampaign_id=$preordercampaign_id"; $where .= " AND preordercampaign_id=$preordercampaign_id";
} elseif(is_array($preordercampaign_id) && count($preordercampaign_id)) {
$where .= " AND preordercampaign_id IN (". implode(",", $preordercampaign_id).")";
} }
} }

View File

@@ -49,7 +49,7 @@ class PreordercampaignController extends mfBaseController {
foreach($my_networks as $mn) { foreach($my_networks as $mn) {
if($mn->id == $filter['network_id']) { if($mn->id == $filter['network_id']) {
$use_filter_network = true; $use_filter_network = true;
continue; break;
} }
} }
@@ -290,7 +290,7 @@ class PreordercampaignController extends mfBaseController {
if(!count($preorders)) { if(!count($preorders)) {
$this->layout->setFlash("Keine Vorbestellungen mit bestellten Dienstleistungen gefunden."); $this->layout->setFlash("Keine Vorbestellungen mit bestellten Dienstleistungen gefunden.");
$this->redirect("Preorder"); $this->redirect("Preordercampaign");
} }
$csv = []; $csv = [];

View File

@@ -83,7 +83,6 @@ class PreordercampaignModel {
$db = FronkDB::singleton(); $db = FronkDB::singleton();
$where = self::getSqlFilter($filter); $where = self::getSqlFilter($filter);
mfLoghandler::singleton()->debug($where);
$res = $db->select("Preordercampaign", "*", "$where ORDER BY name,`create`"); $res = $db->select("Preordercampaign", "*", "$where ORDER BY name,`create`");
if($db->num_rows($res)) { if($db->num_rows($res)) {
while($data = $db->fetch_object($res)) { while($data = $db->fetch_object($res)) {

View File

@@ -241,9 +241,6 @@ class User extends mfBaseModel {
if(!is_array($types)) { if(!is_array($types)) {
$types = [$types]; $types = [$types];
} }
//var_dump($types);exit;
//var_dump($my_networks);exit;
foreach($my_networks as $net) { foreach($my_networks as $net) {
//var_dump($net);exit; //var_dump($net);exit;
@@ -253,7 +250,6 @@ class User extends mfBaseModel {
} }
$found = NetworkaddressModel::search(['network_id' => $net->id, "addresstype" => $types, 'address_id' => $address_id]); $found = NetworkaddressModel::search(['network_id' => $net->id, "addresstype" => $types, 'address_id' => $address_id]);
if($found) { if($found) {
$this->log->debug("allowed net: ".$net->id);
$typenets[] = $net; $typenets[] = $net;
} }