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>
</ol>
</div>
<h4 class="page-title">Vorbestellungen<?=($campaign) ? " - ".$campaign->name : ""?></h4>
<h4 class="page-title">Vorbestellungen<?=(isset($campaign) && $campaign) ? " - ".$campaign->name : ""?></h4>
</div>
</div>
</div>
@@ -36,8 +36,8 @@
<label class="form-label" for="filter_preordercampaign_id">Kampagne</label>
<select name="filter[preordercampaign_id]" id="filter_preordercampaign_id" class="form-control">
<option value="">Alle</option>
<?php foreach(PreordercampaignModel::getAll() as $c): ?>
<option value="<?=$c->id?>" <?=($c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option>
<?php foreach($my_campaigns as $c): ?>
<option value="<?=$c->id?>" <?=(isset($campaign) && $c->id == $campaign->id) ? "selected='selected'" : ""?>><?=$c->name?></option>
<?php endforeach; ?>
</select>
</div>
@@ -66,7 +66,7 @@
<label class="form-label" for="filter_addon_services">Zusatzdienste</label>
<select name="filter[addon_services]" id="filter_addon_services" class="form-control">
<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>
</div>
@@ -102,7 +102,7 @@
<div class="row">
<div class="col-12">
<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>
<?php if($filter['preordercampaign_id']): ?>
<div class="float-right">

View File

@@ -114,19 +114,21 @@ class AddresstypeModel {
/*
* Address Type
*/
if(is_array($filter['addresstype']) && count($filter['addresstype'])) {
$at = $filter['addresstype'];
$in = [];
foreach(TT_ROLES as $role) {
if(in_array($role, $at)) {
$in[] = "Addresstype.type = '$role'";
if(array_key_exists('addresstype', $filter)) {
if(is_array($filter['addresstype']) && count($filter['addresstype'])) {
$at = $filter['addresstype'];
$in = [];
foreach(TT_ROLES as $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);
$sql = "SELECT * FROM NetworkAddress WHERE $where ORDER BY `type`";
mfLoghandler::singleton()->debug($sql);
$res = $db->query($sql);
//$res = $db->select("NetworkAddress", "*", "$where ORDER BY `type`");
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;
return $where;

View File

@@ -37,19 +37,40 @@ class PreorderController extends mfBaseController {
$pagination['start'] = intval($this->request->s);
}
$campaign_filter = [];
$preorder_filter = $filter;
$my_campaigns = [];
$my_campaign_ids = [];
if($filter['preordercampaign_id']) {
$campaign_id = $filter['preordercampaign_id'];
if(is_numeric($campaign_id) && $campaign_id > 0) {
$campaign = new Preordercampaign($campaign_id);
$this->layout()->set("campaign", $campaign);
if($this->me->is("Admin")) {
if($filter['preordercampaign_id']) {
$this->layout()->set("campaign", new Preordercampaign($filter['preordercampaign_id']));
} else {
$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']) {
$pagination['maxItems'] = PreorderModel::countOrderedAddonservices($filter);

View File

@@ -242,6 +242,8 @@ class PreorderModel {
$preordercampaign_id = $filter['preordercampaign_id'];
if(is_numeric($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) {
if($mn->id == $filter['network_id']) {
$use_filter_network = true;
continue;
break;
}
}
@@ -290,7 +290,7 @@ class PreordercampaignController extends mfBaseController {
if(!count($preorders)) {
$this->layout->setFlash("Keine Vorbestellungen mit bestellten Dienstleistungen gefunden.");
$this->redirect("Preorder");
$this->redirect("Preordercampaign");
}
$csv = [];

View File

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

View File

@@ -241,9 +241,6 @@ class User extends mfBaseModel {
if(!is_array($types)) {
$types = [$types];
}
//var_dump($types);exit;
//var_dump($my_networks);exit;
foreach($my_networks as $net) {
//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]);
if($found) {
$this->log->debug("allowed net: ".$net->id);
$typenets[] = $net;
}