Can now save Network Roles
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
class NetworkAddressController extends mfBaseController {
|
||||
|
||||
protected function init() {
|
||||
$this->needlogin=true;
|
||||
$me = new User();
|
||||
$me->loadMe();
|
||||
$this->me = $me;
|
||||
$this->layout()->set("me",$me);
|
||||
/*
|
||||
if(!$me->isAdmin()) {
|
||||
$this->redirect("Dashboard");
|
||||
}*/
|
||||
}
|
||||
|
||||
protected function saveAction() {
|
||||
$r = $this->request;
|
||||
|
||||
if(!is_array($r->roles)) {
|
||||
$this->redirect("Network");
|
||||
}
|
||||
if(!$r->network_id) {
|
||||
$this->redirect("Network");
|
||||
}
|
||||
$network_id = $r->network_id;
|
||||
|
||||
$network = new Network($network_id);
|
||||
if(!$network->id) {
|
||||
$this->layout()->setFlash("Netzgebiet nicht gefunden.", "error");
|
||||
$this->redirect("Network");
|
||||
}
|
||||
|
||||
foreach($r->roles as $address_id => $new_roles) {
|
||||
|
||||
$address = new Address($address_id);
|
||||
if(!$address->id) {
|
||||
$this->layout()->setFlash("Person/Firma nicht gefunden.", "error");
|
||||
$this->redirect("Network");
|
||||
}
|
||||
|
||||
foreach(TT_NETWORK_ROLES as $rolestring) {
|
||||
if(in_array($rolestring, $new_roles)) {
|
||||
// check if role exists
|
||||
if(NetworkAddressModel::search(['network_id' => $network, 'address_id' => $address_id, 'addresstype' => [$rolestring]])) {
|
||||
continue; // role exists
|
||||
} else {
|
||||
$na = NetworkAddressModel::create(['network_id' => $network_id, 'address_id' => $address_id, 'type' => $rolestring]);
|
||||
$na->save();
|
||||
}
|
||||
// role does not exist, create it
|
||||
} else {
|
||||
// not in new_roles, delete (if exists)
|
||||
$na = NetworkAddressModel::getFirst(['network_id' => $network, 'address_id' => $address_id, 'addresstype' => [$rolestring]]);
|
||||
if($na) {
|
||||
$na->delete();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$this->redirect("Network");
|
||||
}
|
||||
|
||||
protected function createAction() {
|
||||
//var_dump($this->request);
|
||||
//var_dump($r->roles);exit;
|
||||
|
||||
$r = $this->request;
|
||||
//var_dump($r->roles);exit;
|
||||
if(!is_array($r->roles)) {
|
||||
$this->redirect("Network");
|
||||
}
|
||||
if(!$r->network_id) {
|
||||
$this->redirect("Network");
|
||||
}
|
||||
$network_id = $r->network_id;
|
||||
$network = new Network($network_id);
|
||||
if(!$network->id) {
|
||||
$this->log->info("Netzgebiet nicht gefunden (".$network_id.")");
|
||||
$this->layout()->setFlash("Netzgebiet nicht gefunden.", "error");
|
||||
$this->redirect("Network");
|
||||
}
|
||||
|
||||
if(!$r->address_id) {
|
||||
$this->redirect("Network");
|
||||
}
|
||||
$address_id = $r->address_id;
|
||||
$address = new Address($address_id);
|
||||
if(!$address->id) {
|
||||
$this->log->info("Person/Firma nicht gefunden (".$address_id.")");
|
||||
$this->layout()->setFlash("Person/Firma nicht gefunden.", "error");
|
||||
$this->redirect("Network");
|
||||
}
|
||||
|
||||
foreach($r->roles as $type) {
|
||||
$na = NetworkAddressModel::create(['network_id' => $network_id, 'address_id' => $address_id, 'type' => $type]);
|
||||
$na->save();
|
||||
}
|
||||
|
||||
$this->redirect("Network");
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,16 @@ class NetworkAddressModel {
|
||||
}
|
||||
}
|
||||
|
||||
$me = new User();
|
||||
$me->loadMe();
|
||||
|
||||
if($model->create_by === null) {
|
||||
$model->create_by = $me->id;
|
||||
}
|
||||
if($model->edit_by === null) {
|
||||
$model->edit_by = $me->id;
|
||||
}
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
@@ -85,7 +95,8 @@ class NetworkAddressModel {
|
||||
|
||||
private function getSqlFilter($filter) {
|
||||
$where = "1=1 ";
|
||||
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
//var_dump($filter);exit;
|
||||
if(array_key_exists("network_id", $filter)) {
|
||||
$network_id = $filter['network_id'];
|
||||
@@ -101,6 +112,22 @@ class NetworkAddressModel {
|
||||
}
|
||||
}
|
||||
|
||||
if(is_array($filter['addresstype']) && count($filter['addresstype'])) {
|
||||
$at = $filter['addresstype'];
|
||||
$in = [];
|
||||
foreach(TT_ROLES as $role) {
|
||||
if(in_array($role, $at)) {
|
||||
$in[] = "NetworkAddress.type = '$role'";
|
||||
}
|
||||
}
|
||||
|
||||
$or = "";
|
||||
if(count($in)) {
|
||||
$or = implode(" OR ", $in);
|
||||
$where .= " AND ( $or )";
|
||||
}
|
||||
}
|
||||
|
||||
//var_dump($filter, $where);exit;
|
||||
return $where;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user