Added permission checks for Buildings and terminations
This commit is contained in:
@@ -83,12 +83,14 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if($building->id): ?>
|
||||||
<div class="form-group row" id="gps-again" style="display:none;">
|
<div class="form-group row" id="gps-again" style="display:none;">
|
||||||
<div class="col-lg-2"></div>
|
<div class="col-lg-2"></div>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-10">
|
||||||
<label class="text-pink"><input type="checkbox" name="gps_again" value="1" /> GPS-Koordinaten erneut berechnen</label>
|
<label class="text-pink"><input type="checkbox" name="gps_again" value="1" /> GPS-Koordinaten erneut berechnen</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-lg-2 col-form-label" for="code">Objekt ID</label>
|
<label class="col-lg-2 col-form-label" for="code">Objekt ID</label>
|
||||||
@@ -205,15 +207,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--
|
|
||||||
<div class="form-group row">
|
|
||||||
<label class="col-lg-2 col-form-label" for="description">Bauabschnitt</label>
|
|
||||||
<div class="col-lg-10">
|
|
||||||
<textarea id="description" class="form-control" name="description" rows="5"><?=$building->description?></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-lg-2 col-form-label" for="status_id">Status</label>
|
<label class="col-lg-2 col-form-label" for="status_id">Status</label>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-10">
|
||||||
@@ -234,9 +227,9 @@
|
|||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-lg-2 col-form-label" for="pipeworker_id">Tiefbau *</label>
|
<label class="col-lg-2 col-form-label" for="pipeworker_id">Tiefbau</label>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-10">
|
||||||
<select class="select2 form-control " name="pipeworker_id" id="pipeworker_id" >
|
<select class="select2 form-control " name="pipeworker_id" id="pipeworker_id" <?=(!$me->is(["Admin", "netowner", "pipeplanner"])) ? "disabled='disabled'" : ""?>>
|
||||||
<option></option>
|
<option></option>
|
||||||
<?php foreach($pipeworkers as $pw): ?>
|
<?php foreach($pipeworkers as $pw): ?>
|
||||||
<option value="<?=$pw->id?>" <?=($building->pipeworker_id == $pw->id) ? "selected='selected'" : ""?>><?=$pw->getCompanyOrName()?></option>
|
<option value="<?=$pw->id?>" <?=($building->pipeworker_id == $pw->id) ? "selected='selected'" : ""?>><?=$pw->getCompanyOrName()?></option>
|
||||||
@@ -246,9 +239,9 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-lg-2 col-form-label" for="lineworker_id">Kabelbau *</label>
|
<label class="col-lg-2 col-form-label" for="lineworker_id">Kabelbau</label>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-10">
|
||||||
<select class="select2 form-control " name="lineworker_id" id="lineworker_id" <?=(!$me->is("Admin")) ? "disabled='disabled'" : ""?>>
|
<select class="select2 form-control " name="lineworker_id" id="lineworker_id" <?=(!$me->is(["Admin", "netowner", "pipeplanner"])) ? "disabled='disabled'" : ""?>>
|
||||||
<option></option>
|
<option></option>
|
||||||
<?php foreach($lineworkers as $lw): ?>
|
<?php foreach($lineworkers as $lw): ?>
|
||||||
<option value="<?=$lw->id?>" <?=($building->lineworker_id == $lw->id) ? "selected='selected'" : ""?>><?=$lw->getCompanyOrName()?></option>
|
<option value="<?=$lw->id?>" <?=($building->lineworker_id == $lw->id) ? "selected='selected'" : ""?>><?=$lw->getCompanyOrName()?></option>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<select name="address_id" id="address_id" class="form-control">
|
<select name="address_id" id="address_id" class="form-control">
|
||||||
<option value=""></option>
|
<option value=""></option>
|
||||||
<?php foreach($addresses as $address): ?>
|
<?php foreach($addresses as $address): ?>
|
||||||
<option value="<?=$address->id?>" <?=($address->id == $user->address_id) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?></option>
|
<option value="<?=$address->id?>" <?=($address->id == $user->address_id || $address->id == $address_id) ? "selected='selected'" : ""?>><?=($address->company) ? $address->company : $address->getFullName()?></option>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -38,7 +38,11 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="float-right">
|
<div class="float-right">
|
||||||
|
<?php if(is_array($filter) && count($filter) && is_numeric($filter['address_id'])): ?>
|
||||||
|
<a class="btn btn-primary" href="<?=self::getUrl("User", "add", ['address_id' => $filter['address_id']])?>"><i class="fas fa-plus"></i> Neuen Benutzer anlegen</a>
|
||||||
|
<?php else: ?>
|
||||||
<a class="btn btn-primary" href="<?=self::getUrl("User", "add")?>"><i class="fas fa-plus"></i> Neuen Benutzer anlegen</a>
|
<a class="btn btn-primary" href="<?=self::getUrl("User", "add")?>"><i class="fas fa-plus"></i> Neuen Benutzer anlegen</a>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
<table class="table table-striped table-hover">
|
<table class="table table-striped table-hover">
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<a href="<?=self::getUrl("Dashboard")?>"><i class="fe-airplay"></i>Dashboard</a>
|
<a href="<?=self::getUrl("Dashboard")?>"><i class="fe-airplay"></i>Dashboard</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<?php if($me->is("Admin")): ?>
|
||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fas fa-database"></i>Stammdaten <div class="arrow-down"></div>
|
<i class="fas fa-database"></i>Stammdaten <div class="arrow-down"></div>
|
||||||
@@ -16,38 +18,39 @@
|
|||||||
<a href="<?=self::getUrl("Address")?>">Personen & Firmen</a>
|
<a href="<?=self::getUrl("Address")?>">Personen & Firmen</a>
|
||||||
<ul class="sub-submenu">
|
<ul class="sub-submenu">
|
||||||
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["employee"]]])?>">Mitarbeiter</a></li>
|
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["employee"]]])?>">Mitarbeiter</a></li>
|
||||||
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["customer"]]])?>">Kunden</a></li>
|
|
||||||
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["supplier"]]])?>">Lieferanten</a></li>
|
<li><a href="<?=self::getUrl("Address", "Index" , ["filter" => ["addresstype" => ["supplier"]]])?>">Lieferanten</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="has-sub-submenu">
|
<li><a href="<?=self::getUrl("Product")?>">Produkte</a></li>
|
||||||
<a href="<?=self::getUrl("Product")?>">Produkte</a>
|
<li><a href="<?=self::getUrl("Producttech")?>">Technologien</a></li>
|
||||||
<ul class="sub-submenu">
|
|
||||||
<li><a href="<?=self::getUrl("Producttech")?>">Technologien</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li><a href="<?=self::getUrl("User")?>">Benutzer</a></li>
|
<li><a href="<?=self::getUrl("User")?>">Benutzer</a></li>
|
||||||
<li><a href="<?=self::getUrl("Network")?>">Netzgebiete</a></li>
|
<li><a href="<?=self::getUrl("Network")?>">Netzgebiete</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
|
||||||
|
<?php if($me->is(["Admin","netowner","lineplanner","pipeplanner"])): ?>
|
||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fas fa-hard-hat"></i>Netzbau <div class="arrow-down"></div>
|
<i class="fas fa-hard-hat"></i>Netzbau <div class="arrow-down"></div>
|
||||||
</a>
|
</a>
|
||||||
<ul class="submenu">
|
<ul class="submenu">
|
||||||
<li><a href="<?=self::getUrl("Building")?>">Objekte</a></li>
|
<li><a href="<?=self::getUrl("Building")?>">Objekte & Anschlüsse</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if($me->is(["Admin","salespartner"])): ?>
|
||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<i class="fas fa-hard-hat"></i>Verkauf <div class="arrow-down"></div>
|
<i class="fas fa-beer"></i>Verkauf <div class="arrow-down"></div>
|
||||||
</a>
|
</a>
|
||||||
<ul class="submenu">
|
<ul class="submenu">
|
||||||
<li><a href="<?=self::getUrl("Order")?>">Bestellungen</a></li>
|
<li><a href="<?=self::getUrl("Order")?>">Bestellungen</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<!-- End navigation menu -->
|
<!-- End navigation menu -->
|
||||||
|
|||||||
@@ -94,58 +94,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="dropdown notification-list">
|
<li>
|
||||||
<a class="nav-link dropdown-toggle nav-user mr-0" data-toggle="dropdown" href="#" role="button" aria-haspopup="false" aria-expanded="false">
|
<a class="nav-link nav-user mr-0" href="#">
|
||||||
<!-- <img src="<?=self::getResourcePath()?>assets/images/users/avatar-4.jpg" alt="user-image" class="rounded-circle"> -->
|
<!-- <img src="<?=self::getResourcePath()?>assets/images/users/avatar-4.jpg" alt="user-image" class="rounded-circle"> -->
|
||||||
<i style="font-size: 24px; border-radius: 50%;" class="fas fa-user-secret text-white img-circle bg-info"></i>
|
<i style="font-size: 24px; border-radius: 50%;" class="fas fa-user-secret text-white img-circle bg-info"></i>
|
||||||
<span class="pro-user-name ml-1">
|
<span class="pro-user-name ml-1">
|
||||||
<?=$me->username?> <i class="mdi mdi-chevron-down"></i>
|
<?=$me->username?>
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-right profile-dropdown ">
|
|
||||||
<!-- item-->
|
|
||||||
<div class="dropdown-item noti-title">
|
|
||||||
<h6 class="m-0">
|
|
||||||
Welcome !
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- item-->
|
|
||||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
|
||||||
<i class="dripicons-user"></i>
|
|
||||||
<span>Mein Konto</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- item-->
|
|
||||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
|
||||||
<i class="dripicons-gear"></i>
|
|
||||||
<span>Einstellungen</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- item-->
|
|
||||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
|
||||||
<i class="dripicons-help"></i>
|
|
||||||
<span>Support</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- item-->
|
|
||||||
<a href="javascript:void(0);" class="dropdown-item notify-item">
|
|
||||||
<i class="dripicons-lock"></i>
|
|
||||||
<span>Mochzua</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<div class="dropdown-divider"></div>
|
|
||||||
|
|
||||||
<!-- item-->
|
|
||||||
<a href="<?=self::getUrl("Dashboard","logout")?>" class="dropdown-item notify-item">
|
|
||||||
<i class="dripicons-power"></i>
|
|
||||||
<span>Omöldn</span>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a href="<?=self::getUrl("Dashboard","logout")?>" class="nav-link nav-user">
|
||||||
|
<i class="fas fa-sign-out-alt"></i>
|
||||||
|
<span class="pro-user-name ml-1">Omöldn</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,11 @@
|
|||||||
|
|
||||||
class Address extends mfBaseModel {
|
class Address extends mfBaseModel {
|
||||||
protected $forcestr = ['street','company','zip','phone','fax','mobile','note'];
|
protected $forcestr = ['street','company','zip','phone','fax','mobile','note'];
|
||||||
|
private $parent;
|
||||||
private $types;
|
private $types;
|
||||||
private $attributes;
|
private $attributes;
|
||||||
|
private $permissions;
|
||||||
|
|
||||||
|
|
||||||
public function getFullName() {
|
public function getFullName() {
|
||||||
// Assumes "Firma1 Firma2" or "firstname lastname" as readable form
|
// Assumes "Firma1 Firma2" or "firstname lastname" as readable form
|
||||||
@@ -28,17 +31,33 @@ class Address extends mfBaseModel {
|
|||||||
return $this->getFullName();
|
return $this->getFullName();
|
||||||
}
|
}
|
||||||
|
|
||||||
private function loadAddresstypes() {
|
|
||||||
|
public function loadAddresstypes() {
|
||||||
if(!$this->id) {
|
if(!$this->id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->types = AddresstypeModel::search(['address_id' => $this->id], true);
|
if(!$this->parent_id) {
|
||||||
|
$this->types = AddresstypeModel::search(['address_id' => $this->id], true);
|
||||||
|
} else {
|
||||||
|
// get types from parent
|
||||||
|
|
||||||
|
$parent = $this->getProperty("parent");
|
||||||
|
$types = $parent->getProperty("types");
|
||||||
|
$this->types = $types;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getProperty($name) {
|
public function getProperty($name) {
|
||||||
if($this->$name == null) {
|
if($this->$name == null) {
|
||||||
|
|
||||||
|
if(!$this->id) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if($name == "types") {
|
if($name == "types") {
|
||||||
$this->loadAddresstypes();
|
$this->loadAddresstypes();
|
||||||
return $this->types;
|
return $this->types;
|
||||||
@@ -55,6 +74,16 @@ class Address extends mfBaseModel {
|
|||||||
return $this->attributes;
|
return $this->attributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($name == "permissions") {
|
||||||
|
$this->permissions = NetworkAddressModel::search(['address_id' => $this->id]);
|
||||||
|
return $permissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "parent") {
|
||||||
|
$this->parent = new Address($this->parent_id);
|
||||||
|
return $this->parent;
|
||||||
|
}
|
||||||
|
|
||||||
$classname = ucfirst($name);
|
$classname = ucfirst($name);
|
||||||
$idfield = $name."_id";
|
$idfield = $name."_id";
|
||||||
$this->$name = new $classname($this->$idfield);
|
$this->$name = new $classname($this->$idfield);
|
||||||
|
|||||||
@@ -95,10 +95,12 @@ class AddressModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = $db->select("Address", "*", "$where AND id NOT IN (".implode(",", $have).")");
|
if(!array_key_exists("addresstype", $filter)) {
|
||||||
if($db->num_rows()) {
|
$res = $db->select("Address", "*", "$where AND id NOT IN (".implode(",", $have).")");
|
||||||
while($data = $db->fetch_object($res)) {
|
if($db->num_rows()) {
|
||||||
$items[] = new Address($data);
|
while($data = $db->fetch_object($res)) {
|
||||||
|
$items[] = new Address($data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class BuildingController extends mfBaseController {
|
|||||||
$this->me = $me;
|
$this->me = $me;
|
||||||
$this->layout()->set("me",$me);
|
$this->layout()->set("me",$me);
|
||||||
|
|
||||||
if(!$me->isAdmin()) {
|
if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||||
$this->redirect("Dashboard");
|
$this->redirect("Dashboard");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -21,12 +21,43 @@ class BuildingController extends mfBaseController {
|
|||||||
|
|
||||||
protected function addAction() {
|
protected function addAction() {
|
||||||
$this->layout()->setTemplate("Building/Form");
|
$this->layout()->setTemplate("Building/Form");
|
||||||
$this->layout()->set("networks", NetworkModel::getAll());
|
|
||||||
|
if($this->me->isAdmin()) {
|
||||||
|
$this->layout()->set("networks", NetworkModel::getAll());
|
||||||
|
$this->layout()->set("pipeworkers", AddressModel::search(["addresstype" => ["pipeworker"]])); // change to NetworkaddressModel
|
||||||
|
$this->layout()->set("lineworkers", AddressModel::search(["addresstype" => ["lineworker"]])); // change to NetworkaddressModel
|
||||||
|
} else {
|
||||||
|
$this->layout()->set("networks", $this->me->my_networks);
|
||||||
|
$pipeworkers = [];
|
||||||
|
$lineworkers = [];
|
||||||
|
foreach($this->me->my_networks as $network) {
|
||||||
|
//var_dump($network->addresstypes);exit;
|
||||||
|
if(is_array($network->addresstypes)) {
|
||||||
|
foreach($network->getTypeAddresses("pipeworker") as $address) {
|
||||||
|
if(!array_key_exists($address->id, $pipeworkers)) {
|
||||||
|
$pipeworkers[$address->id] = $address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach($network->getTypeAddresses("lineworker") as $address) {
|
||||||
|
if(!array_key_exists($address->id, $lineworkers)) {
|
||||||
|
$lineworkers[$address->id] = $address;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->layout()->set("pipeworkers", $pipeworkers); // change to NetworkaddressModel
|
||||||
|
$this->layout()->set("lineworkers", $lineworkers); // change to NetworkaddressModel
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
$this->layout()->set("types", BuildingtypeModel::getAll());
|
$this->layout()->set("types", BuildingtypeModel::getAll());
|
||||||
$this->layout()->set("statuses", BuildingstatusModel::getAll());
|
$this->layout()->set("statuses", BuildingstatusModel::getAll());
|
||||||
$this->layout()->set("pipeworkers", AddressModel::search(["addresstype" => ["pipeworker"]]));
|
|
||||||
$this->layout()->set("lineworkers", AddressModel::search(["addresstype" => ["lineworker"]]));
|
|
||||||
$this->layout()->set("networksections", NetworksectionModel::getAll());
|
$this->layout()->set("networksections", NetworksectionModel::getAll());
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function editAction() {
|
protected function editAction() {
|
||||||
@@ -71,7 +102,7 @@ class BuildingController extends mfBaseController {
|
|||||||
$data['network_id'] = $r->network_id;
|
$data['network_id'] = $r->network_id;
|
||||||
$data['pop_id'] = ($r->pop_id) ? $r->pop_id : null;
|
$data['pop_id'] = ($r->pop_id) ? $r->pop_id : null;
|
||||||
$data['type_id'] = $r->type_id;
|
$data['type_id'] = $r->type_id;
|
||||||
$data['status_id'] = ($r->status_id) ? $r->status_id : null;
|
$data['status_id'] = ($r->status_id) ? $r->status_id : 1;
|
||||||
$data['pipeworker_id'] = ($r->pipeworker_id) ? $r->pipeworker_id : null;
|
$data['pipeworker_id'] = ($r->pipeworker_id) ? $r->pipeworker_id : null;
|
||||||
$data['lineworker_id'] = ($r->lineworker_id) ? $r->lineworker_id : null;
|
$data['lineworker_id'] = ($r->lineworker_id) ? $r->lineworker_id : null;
|
||||||
$data['networksection_id'] = ($r->networksection_id) ? $r->networksection_id : null;
|
$data['networksection_id'] = ($r->networksection_id) ? $r->networksection_id : null;
|
||||||
@@ -98,7 +129,6 @@ class BuildingController extends mfBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($mode == "add") {
|
if($mode == "add") {
|
||||||
$data['status_id'] = 1;
|
|
||||||
$data['create_by'] = 1;
|
$data['create_by'] = 1;
|
||||||
$building = BuildingModel::create($data);
|
$building = BuildingModel::create($data);
|
||||||
} else {
|
} else {
|
||||||
@@ -141,7 +171,8 @@ class BuildingController extends mfBaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Anschlüsse anlegen
|
// Anschlüsse anlegen
|
||||||
if($building->units > 0) {
|
|
||||||
|
if(!$building->terminations && $building->units > 0) {
|
||||||
for($i = 1; $i <= $building->units; $i++) {
|
for($i = 1; $i <= $building->units; $i++) {
|
||||||
$data = [];
|
$data = [];
|
||||||
$data['building_id'] = $building->id;
|
$data['building_id'] = $building->id;
|
||||||
|
|||||||
@@ -17,8 +17,11 @@ class DashboardController extends mfBaseController {
|
|||||||
|
|
||||||
|
|
||||||
protected function testAction() {
|
protected function testAction() {
|
||||||
$b = new Building(7);
|
/*$b = new Building(7);
|
||||||
var_dump($b->getNewObjectCode());exit;
|
var_dump($b->getNewObjectCode());exit;
|
||||||
|
*/
|
||||||
|
|
||||||
|
$address = AddressModel::getOne(5);
|
||||||
|
var_dump($address->types);exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,28 @@ class Network extends mfBaseModel {
|
|||||||
private $roles;
|
private $roles;
|
||||||
private $sections;
|
private $sections;
|
||||||
|
|
||||||
|
|
||||||
|
public function getTypeAddresses($search_type) {
|
||||||
|
if(!$this->id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$addresses = [];
|
||||||
|
|
||||||
|
$addresstypes = $this->getProperty("addresstypes");
|
||||||
|
//var_dump($addresstypes);exit;
|
||||||
|
foreach($addresstypes as $address_id => $atypes) {
|
||||||
|
//var_dump($atypes);
|
||||||
|
foreach($atypes as $atype) {
|
||||||
|
//var_dump($atype);
|
||||||
|
if($atype->type == $search_type && !array_key_exists($address_id, $addresses)) {
|
||||||
|
$addresses[$address_id] = new Address($address_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $addresses;
|
||||||
|
}
|
||||||
|
|
||||||
public function loadAddresstypes() {
|
public function loadAddresstypes() {
|
||||||
if(!$this->id) {
|
if(!$this->id) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class NetworkController extends mfBaseController {
|
|||||||
$this->me = $me;
|
$this->me = $me;
|
||||||
$this->layout()->set("me",$me);
|
$this->layout()->set("me",$me);
|
||||||
|
|
||||||
if(!$me->isAdmin()) {
|
if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||||
$this->redirect("Dashboard");
|
$this->redirect("Dashboard");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class NetworksectionController extends mfBaseController {
|
|||||||
$this->me = $me;
|
$this->me = $me;
|
||||||
$this->layout()->set("me",$me);
|
$this->layout()->set("me",$me);
|
||||||
|
|
||||||
if(!$me->isAdmin()) {
|
if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||||
$this->redirect("Dashboard");
|
$this->redirect("Dashboard");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,6 +124,13 @@ class OrderProductModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(array_key_exists("termination_id", $filter)) {
|
||||||
|
$termination_id = $filter['termination_id'];
|
||||||
|
if(is_numeric($termination_id)) {
|
||||||
|
$where .= " AND termination_id=$termination_id";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//var_dump($filter, $where);exit;
|
//var_dump($filter, $where);exit;
|
||||||
return $where;
|
return $where;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ class PopController extends mfBaseController {
|
|||||||
$this->me = $me;
|
$this->me = $me;
|
||||||
$this->layout()->set("me",$me);
|
$this->layout()->set("me",$me);
|
||||||
|
|
||||||
if(!$me->isAdmin()) {
|
if(!$me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||||
$this->redirect("Dashboard");
|
$this->redirect("Dashboard");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class ProductModel {
|
|||||||
public $productgroup_id = null;
|
public $productgroup_id = null;
|
||||||
public $producttech_id = null;
|
public $producttech_id = null;
|
||||||
public $price = null;
|
public $price = null;
|
||||||
|
public $price_setup = null;
|
||||||
public $price_nne = null;
|
public $price_nne = null;
|
||||||
public $price_nbe = null;
|
public $price_nbe = null;
|
||||||
public $billing_period = null;
|
public $billing_period = null;
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class TerminationController extends mfBaseController {
|
|||||||
|
|
||||||
|
|
||||||
protected function delete() {
|
protected function delete() {
|
||||||
if(!$this->me->is("Admin")) {
|
if(!$this->me->is(["Admin", "netowner", "pipeplanner"])) {
|
||||||
$this->layout()->setFlash("Keine Berechtigung", "error");
|
$this->layout()->setFlash("Keine Berechtigung", "error");
|
||||||
$this->redirect("Building");
|
$this->redirect("Building");
|
||||||
}
|
}
|
||||||
@@ -91,6 +91,36 @@ class TerminationController extends mfBaseController {
|
|||||||
|
|
||||||
$building_id = $term->building_id;
|
$building_id = $term->building_id;
|
||||||
|
|
||||||
|
// if user is not admin, check if they have permission for this network
|
||||||
|
if(!$this->me->is("Admin")) {
|
||||||
|
$allowed = false;
|
||||||
|
|
||||||
|
$building = $term->building;
|
||||||
|
$network = $building->network;
|
||||||
|
foreach(["netowner", "pipeplanner"] as $type) {
|
||||||
|
$perms = $network->getTypeAddresses($type);
|
||||||
|
foreach($perms as $address_id => $perm) {
|
||||||
|
if($this->me->address_id != $address_id) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$allowed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$allowed) {
|
||||||
|
$this->layout()->setFlash("Keine Berechtigung", "error");
|
||||||
|
$this->redirect("Building", "Index", [], "building=".$building_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// check for dependencies
|
||||||
|
if(OrderProductModel::search(["termination_id" => $id])) {
|
||||||
|
$this->layout()->setFlash("Anschluss kann nicht gelöscht werden, da abhängige Objekte gefunden wurden.", "error");
|
||||||
|
$this->redirect("Building", "Index", [], "building=".$building_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$term->delete();
|
$term->delete();
|
||||||
|
|
||||||
$this->layout()->setFlash("Anschluss gelöscht", "success");
|
$this->layout()->setFlash("Anschluss gelöscht", "success");
|
||||||
@@ -148,4 +178,4 @@ class TerminationController extends mfBaseController {
|
|||||||
|
|
||||||
return ["msg" => "Saved successfully"];
|
return ["msg" => "Saved successfully"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ class User extends mfBaseModel {
|
|||||||
public $permissions;
|
public $permissions;
|
||||||
public $flags;
|
public $flags;
|
||||||
public $address;
|
public $address;
|
||||||
|
|
||||||
|
private $my_networks;
|
||||||
|
|
||||||
public function init() {
|
public function init() {
|
||||||
$this->table = "Worker";
|
$this->table = "Worker";
|
||||||
@@ -77,12 +79,27 @@ class User extends mfBaseModel {
|
|||||||
if(!$this->id) {
|
if(!$this->id) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(is_object($this->permissions) && property_exists($this->permissions, "is$what")) {
|
|
||||||
return $this->permissions->{"is$what"};
|
if(!is_array($what)) {
|
||||||
|
$what = [$what];
|
||||||
}
|
}
|
||||||
if(is_object($this->address) && property_exists($this->address, "types") && is_array($this->address->types)) {
|
|
||||||
return ($this->address->types[$what]->id) ? true : false;
|
foreach($what as $w) {
|
||||||
|
if(is_object($this->permissions) && property_exists($this->permissions, "is$w")) {
|
||||||
|
if($this->permissions->{"is$w"} === true) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//var_dump($this->address->types);exit;
|
||||||
|
if(is_object($this->address) && property_exists($this->address, "types") && is_array($this->address->types)) {
|
||||||
|
if($this->address->types[$w]->id) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function isAdmin() {
|
public function isAdmin() {
|
||||||
@@ -96,4 +113,49 @@ class User extends mfBaseModel {
|
|||||||
public function __toString() {
|
public function __toString() {
|
||||||
return $this->username;
|
return $this->username;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getProperty($name) {
|
||||||
|
if($this->$name == null) {
|
||||||
|
|
||||||
|
if(!$this->id) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($name == "my_networks") {
|
||||||
|
$this->my_networks = $this->getMyNetworks();
|
||||||
|
return $this->my_networks;
|
||||||
|
}
|
||||||
|
|
||||||
|
$classname = ucfirst($name);
|
||||||
|
$idfield = $name."_id";
|
||||||
|
$this->$name = new $classname($this->$idfield);
|
||||||
|
|
||||||
|
if($this->$name->id) {
|
||||||
|
return $this->$name;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->$name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function getMyNetworks() {
|
||||||
|
if(!$this->id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$my_networks = [];
|
||||||
|
|
||||||
|
$network_list = NetworkAddressModel::search(['address_id' => $this->address_id]);
|
||||||
|
foreach($network_list as $n) {
|
||||||
|
if(!array_key_exists($n->network_id, $my_networks)) {
|
||||||
|
$my_networks[$n->network_id] = new Network($n->network_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $my_networks;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ class UserController extends mfBaseController {
|
|||||||
|
|
||||||
$addresses = AddressModel::getAll();
|
$addresses = AddressModel::getAll();
|
||||||
$this->layout()->set("addresses", $addresses);
|
$this->layout()->set("addresses", $addresses);
|
||||||
|
|
||||||
|
if($this->request->address_id) {
|
||||||
|
$this->layout()->set("address_id", $this->request->address_id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function editAction($request) {
|
protected function editAction($request) {
|
||||||
|
|||||||
Reference in New Issue
Block a user