[Moved GatewayRules to seperate file Tijmen de Mes **20240213092124 Ignore-this: bc59daba2226620c554d904940ffc7ddb2f2aa6010d1099dfaf3f3fedebe07cfa7e0361ef0ce3cea ] addfile ./library/NGNPro/Records/GatewayRules.php hunk ./library/NGNPro/Records/GatewayRules.php 1 + array('type'=>'integer','readonly' => true), + 'gateway_id' => array('type'=>'integer','name' => 'Gateway'), + 'prefix' => array('type'=>'string'), + 'strip' => array('type'=>'integer'), + 'prepend' => array('type'=>'string'), + 'minLength' => array('type'=>'integer'), + 'maxLength' => array('type'=>'integer') + ); + + public function GatewayRules($SoapEngine) + { + $this->filters = array( + 'id' => trim($_REQUEST['id_filter']), + 'gateway_id' => trim($_REQUEST['gateway_id_filter']), + 'carrier_id' => trim($_REQUEST['carrier_id_filter']), + 'prefix' => trim($_REQUEST['prefix_filter']), + ); + + $this->sortElements=array( + 'changeDate' => 'Change date', + 'gateway' => 'Gateway', + 'carrier' => 'Carrier', + 'prefix' => 'Prefix' + ); + parent::__construct($SoapEngine); + } + + function listRecords() { + $this->getCarriers(); + + $this->showSeachForm(); + + // Insert credetials + $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); + + // Filter + $filter=array('id' => intval($this->filters['id']), + 'gateway_id' => intval($this->filters['gateway_id']), + 'carrier_id' => intval($this->filters['carrier_id']), + 'prefix' => $this->filters['prefix'], + 'customer' => intval($this->filters['customer']), + 'reseller' => intval($this->filters['reseller']) + ); + + // Range + $range=array('start' => intval($this->next), + 'count' => intval($this->maxrowsperpage) + ); + + // Order + if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'changeDate'; + if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'ASC'; + + $orderBy = array('attribute' => $this->sorting['sortBy'], + 'direction' => $this->sorting['sortOrder'] + ); + + // Compose query + $Query=array('filter' => $filter, + 'orderBy' => $orderBy, + 'range' => $range + ); + + $this->log_action('getGatewayRules'); + $result = $this->SoapEngine->soapclient->getGatewayRules($Query); + + if ((new PEAR)->isError($result)) { + $error_msg = $result->getMessage(); + $error_fault= $result->getFault(); + $error_code = $result->getCode(); + $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); + syslog(LOG_NOTICE, $log); + return false; + } else { + + $this->rows = $result->total; + + print " +
$this->rows records found
+

+ + "; + + print " + + + + + + + + + + + + + + + + + "; + + if (!$this->next) $this->next=0; + + if ($this->rows > $this->maxrowsperpage) { + $maxrows = $this->maxrowsperpage + $this->next; + if ($maxrows > $this->rows) $maxrows = $this->maxrowsperpage; + } else { + $maxrows=$this->rows; + } + + $i=0; + + if ($this->rows) { + while ($i < $maxrows) { + + if (!$result->gateway_rules[$i]) break; + + $gateway_rule = $result->gateway_rules[$i]; + + $index=$this->next+$i+1; + + $_delete_url = $this->url.sprintf("&service=%s&action=Delete&id_filter=%s&reseller_filter=%s", + urlencode($this->SoapEngine->service), + urlencode($gateway_rule->id), + urlencode($gateway_rule->reseller) + ); + + if ($_REQUEST['action'] == 'Delete' && + $_REQUEST['id_filter'] == $gateway_rule->id) { + $_delete_url .= "&confirm=1"; + $actionText = "Confirm"; + } else { + $actionText = "Delete"; + } + + $_url = $this->url.sprintf("&service=%s&id_filter=%s&reseller_filter=%s", + urlencode($this->SoapEngine->service), + urlencode($gateway_rule->id), + urlencode($gateway_rule->reseller) + ); + + $_customer_url = $this->url.sprintf("&service=customers@%s&customer_filter=%s", + urlencode($this->SoapEngine->customer_engine), + urlencode($gateway_rule->reseller) + ); + + $_carrier_url = $this->url.sprintf("&service=pstn_carriers@%s&id_filter=%s&reseller_filter=%s", + urlencode($this->SoapEngine->soapEngine), + urlencode($gateway_rule->carrier_id), + urlencode($gateway_rule->reseller) + ); + + $_gateway_url = $this->url.sprintf("&service=pstn_gateways@%s&id_filter=%s&reseller_filter=%s", + urlencode($this->SoapEngine->soapEngine), + urlencode($gateway_rule->gateway_id), + urlencode($gateway_rule->reseller) + ); + + printf(" + + + + + + + + + + + + + + ", + $index, + $_customer_url, $gateway_rule->reseller, + $_url, $gateway_rule->id, + $_carrier_url, $gateway_rule->carrier,$gateway_rule->carrier_id, + $_gateway_url, $gateway_rule->gateway,$gateway_rule->gateway_id, + $gateway_rule->prefix, + $gateway_rule->strip, + $gateway_rule->prepend, + $gateway_rule->minLength, + $gateway_rule->maxLength, + $gateway_rule->changeDate, + $_delete_url, + $actionText + ); + + printf(" + + "); + + $i++; + + } + + } + + print "
OwnerRuleCarrierGatewayPrefixStripPrependMinLengthMaxLengthChange dateActions
%s%s%s%s (%d)%s (%d)%s%s%s%s%s%s%s
"; + + if ($this->rows == 1) { + $this->showRecord($gateway_rule); + } else { + $this->showPagination($maxrows); + } + + return true; + } + } + + function showAddForm() { + //if ($this->selectionActive) return; + + $this->getGateways(); + + if (!count($this->gateways)) { + print "

Create a gateway first"; + return false; + } + + printf ("

",$_SERVER['PHP_SELF']); + print " +
+ "; + + print " + + + "; + + print "
Gateway
"); + + printf ("
Prefix
"); + printf ("
Strip
"); + printf ("
Prepend
"); + printf ("
Min length
"); + printf ("
Max length
"); + + $this->printHiddenFormElements(); + + print "
+
+ "; + } + + function addRecord($dictionary=array()) { + if ($dictionary['gateway_id']) { + $gateway_id = $dictionary['gateway_id']; + } else { + $gateway_id = trim($_REQUEST['gateway_id']); + } + + if ($dictionary['prefix']) { + $prefix = $dictionary['prefix']; + } else { + $prefix = trim($_REQUEST['prefix']); + } + + if ($dictionary['strip']) { + $strip = $dictionary['strip']; + } else { + $strip = trim($_REQUEST['strip']); + } + + if ($dictionary['prepend']) { + $prepend = $dictionary['prepend']; + } else { + $prepend = trim($_REQUEST['prepend']); + } + + if ($dictionary['minLength']) { + $minLength = $dictionary['minLength']; + } else { + $minLength = trim($_REQUEST['minLength']); + } + + if ($dictionary['maxLength']) { + $maxLength = $dictionary['maxLength']; + } else { + $maxLength = trim($_REQUEST['maxLength']); + } + + if (!strlen($gateway_id)) { + printf ("

Error: Missing gateway id"); + return false; + } + + $rule=array( + 'gateway_id' => intval($gateway_id), + 'prefix' => $prefix, + 'prepend' => $prepend, + 'strip' => intval($strip), + 'minLength' => intval($minLength), + 'maxLength' => intval($maxLength) + ); + + $function=array('commit' => array('name' => 'addGatewayRule', + 'parameters' => array($rule), + 'logs' => array('success' => sprintf('Gateway rule has been added'))) + ); + + unset($this->filters); + return $this->SoapEngine->execute($function,$this->html); + } + + function deleteRecord($dictionary=array()) { + if (!$dictionary['confirm'] && !$_REQUEST['confirm']) { + print "

Please press on Confirm to confirm the delete. "; + return true; + } + + if ($dictionary['id']) { + $id = $dictionary['id']; + } else { + $id = trim($this->filters['id']); + } + + if (!strlen($id)) { + print "

Error: missing rule id "; + return false; + } + + $function=array('commit' => array('name' => 'deleteGatewayRule', + 'parameters' => array(intval($id)), + 'logs' => array('success' => sprintf('Gateway rule %d has been deleted',$id))) + ); + unset($this->filters); + return $this->SoapEngine->execute($function,$this->html); + + } + + function showSeachFormCustom() { + printf ("

Rule
",$this->filters['id']); + print " + "); + printf ("
Gateway
",$this->filters['gateway_id']); + printf ("
Prefix
",$this->filters['prefix']); + } + + function showCustomerForm($name='customer_filter') { + } + + function showTextBeforeCustomerSelection() { + print "Owner"; + } + + function showRecord($rule) { + + $this->getGateways(); + + print "

Rule

"; + + printf ("
",$_SERVER['PHP_SELF']); + print ""; + + foreach (array_keys($this->Fields) as $item) { + if ($this->Fields[$item]['name']) { + $item_name=$this->Fields[$item]['name']; + } else { + $item_name=ucfirst($item); + } + + printf ("
+ + ", + $item_name + ); + + if ($this->Fields[$item]['readonly']) { + printf ("
%s
", + $item, + $rule->$item, + $rule->$item + ); + } else { + if ($item == 'gateway_id') { + printf ("
"; + + } else { + printf ("
", + $item, + $rule->$item + ); + } + } + print " +
"; + } + + printf ("",$rule->reseller); + + $this->printFiltersToForm(); + $this->printHiddenFormElements(); + + print " +
+ +
+ "; + print "
"; + } + + function updateRecord () { + //print "

Updating rule ..."; + + if (!$_REQUEST['id_form'] || !strlen($_REQUEST['reseller_filter'])) { + return; + } + + if (!$rule = $this->getRecord($_REQUEST['id_form'])) { + return false; + } + + foreach (array_keys($this->Fields) as $item) { + $var_name=$item.'_form'; + if ($this->Fields[$item]['type'] == 'integer') { + $rule->$item = intval($_REQUEST[$var_name]); + } else { + $rule->$item = trim($_REQUEST[$var_name]); + } + } + + $function=array('commit' => array('name' => 'updateGatewayRule', + 'parameters' => array($rule), + 'logs' => array('success' => sprintf('Rule %d has been updated',$_REQUEST['id_form']))) + ); + + $result = $this->SoapEngine->execute($function,$this->html); + + dprint_r($result) ; + if ((new PEAR)->isError($result)) { + $error_msg = $result->getMessage(); + $error_fault= $result->getFault(); + $error_code = $result->getCode(); + $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); + syslog(LOG_NOTICE, $log); + return false; + } else { + return true; + } + } + + function getRecord($id) { + // Insert credetials + $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); + + // Filter + $filter=array('id' => intval($id)); + + // Range + $range=array('start' => 0, + 'count' => 1 + ); + + // Order + $this->sorting['sortBy'] = 'gateway'; + $this->sorting['sortOrder'] = 'ASC'; + + $orderBy = array('attribute' => $this->sorting['sortBy'], + 'direction' => $this->sorting['sortOrder'] + ); + + // Compose query + $Query=array('filter' => $filter, + 'orderBy' => $orderBy, + 'range' => $range + ); + + // Call function + $this->log_action('getGatewayRules'); + $result = $this->SoapEngine->soapclient->getGatewayRules($Query); + + if ((new PEAR)->isError($result)) { + $error_msg = $result->getMessage(); + $error_fault= $result->getFault(); + $error_code = $result->getCode(); + $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); + syslog(LOG_NOTICE, $log); + return false; + } else { + if ($result->gateway_rules[0]){ + return $result->gateway_rules[0]; + } else { + return false; + } + } + } +} + hunk ./library/ngnpro_client.php 3849 -class GatewayRules extends Records -{ - var $carriers=array(); - var $FieldsReadOnly=array( - 'reseller', - 'changeDate' - ); - - var $Fields=array( - 'id' => array('type'=>'integer','readonly' => true), - 'gateway_id' => array('type'=>'integer','name' => 'Gateway'), - 'prefix' => array('type'=>'string'), - 'strip' => array('type'=>'integer'), - 'prepend' => array('type'=>'string'), - 'minLength' => array('type'=>'integer'), - 'maxLength' => array('type'=>'integer') - ); - - public function GatewayRules($SoapEngine) - { - $this->filters = array( - 'id' => trim($_REQUEST['id_filter']), - 'gateway_id' => trim($_REQUEST['gateway_id_filter']), - 'carrier_id' => trim($_REQUEST['carrier_id_filter']), - 'prefix' => trim($_REQUEST['prefix_filter']), - ); - - $this->sortElements=array( - 'changeDate' => 'Change date', - 'gateway' => 'Gateway', - 'carrier' => 'Carrier', - 'prefix' => 'Prefix' - ); - parent::__construct($SoapEngine); - } - - function listRecords() { - $this->getCarriers(); - - $this->showSeachForm(); - - // Insert credetials - $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); - - // Filter - $filter=array('id' => intval($this->filters['id']), - 'gateway_id' => intval($this->filters['gateway_id']), - 'carrier_id' => intval($this->filters['carrier_id']), - 'prefix' => $this->filters['prefix'], - 'customer' => intval($this->filters['customer']), - 'reseller' => intval($this->filters['reseller']) - ); - - // Range - $range=array('start' => intval($this->next), - 'count' => intval($this->maxrowsperpage) - ); - - // Order - if (!$this->sorting['sortBy']) $this->sorting['sortBy'] = 'changeDate'; - if (!$this->sorting['sortOrder']) $this->sorting['sortOrder'] = 'ASC'; - - $orderBy = array('attribute' => $this->sorting['sortBy'], - 'direction' => $this->sorting['sortOrder'] - ); - - // Compose query - $Query=array('filter' => $filter, - 'orderBy' => $orderBy, - 'range' => $range - ); - - $this->log_action('getGatewayRules'); - $result = $this->SoapEngine->soapclient->getGatewayRules($Query); - - if ((new PEAR)->isError($result)) { - $error_msg = $result->getMessage(); - $error_fault= $result->getFault(); - $error_code = $result->getCode(); - $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); - syslog(LOG_NOTICE, $log); - return false; - } else { - - $this->rows = $result->total; - - print " -

$this->rows records found
-

- - "; - - print " - - - - - - - - - - - - - - - - - "; - - if (!$this->next) $this->next=0; - - if ($this->rows > $this->maxrowsperpage) { - $maxrows = $this->maxrowsperpage + $this->next; - if ($maxrows > $this->rows) $maxrows = $this->maxrowsperpage; - } else { - $maxrows=$this->rows; - } - - $i=0; - - if ($this->rows) { - while ($i < $maxrows) { - - if (!$result->gateway_rules[$i]) break; - - $gateway_rule = $result->gateway_rules[$i]; - - $index=$this->next+$i+1; - - $_delete_url = $this->url.sprintf("&service=%s&action=Delete&id_filter=%s&reseller_filter=%s", - urlencode($this->SoapEngine->service), - urlencode($gateway_rule->id), - urlencode($gateway_rule->reseller) - ); - - if ($_REQUEST['action'] == 'Delete' && - $_REQUEST['id_filter'] == $gateway_rule->id) { - $_delete_url .= "&confirm=1"; - $actionText = "Confirm"; - } else { - $actionText = "Delete"; - } - - $_url = $this->url.sprintf("&service=%s&id_filter=%s&reseller_filter=%s", - urlencode($this->SoapEngine->service), - urlencode($gateway_rule->id), - urlencode($gateway_rule->reseller) - ); - - $_customer_url = $this->url.sprintf("&service=customers@%s&customer_filter=%s", - urlencode($this->SoapEngine->customer_engine), - urlencode($gateway_rule->reseller) - ); - - $_carrier_url = $this->url.sprintf("&service=pstn_carriers@%s&id_filter=%s&reseller_filter=%s", - urlencode($this->SoapEngine->soapEngine), - urlencode($gateway_rule->carrier_id), - urlencode($gateway_rule->reseller) - ); - - $_gateway_url = $this->url.sprintf("&service=pstn_gateways@%s&id_filter=%s&reseller_filter=%s", - urlencode($this->SoapEngine->soapEngine), - urlencode($gateway_rule->gateway_id), - urlencode($gateway_rule->reseller) - ); - - printf(" - - - - - - - - - - - - - - ", - $index, - $_customer_url, $gateway_rule->reseller, - $_url, $gateway_rule->id, - $_carrier_url, $gateway_rule->carrier,$gateway_rule->carrier_id, - $_gateway_url, $gateway_rule->gateway,$gateway_rule->gateway_id, - $gateway_rule->prefix, - $gateway_rule->strip, - $gateway_rule->prepend, - $gateway_rule->minLength, - $gateway_rule->maxLength, - $gateway_rule->changeDate, - $_delete_url, - $actionText - ); - - printf(" - - "); - - $i++; - - } - - } - - print "
OwnerRuleCarrierGatewayPrefixStripPrependMinLengthMaxLengthChange dateActions
%s%s%s%s (%d)%s (%d)%s%s%s%s%s%s%s
"; - - if ($this->rows == 1) { - $this->showRecord($gateway_rule); - } else { - $this->showPagination($maxrows); - } - - return true; - } - } - - function showAddForm() { - //if ($this->selectionActive) return; - - $this->getGateways(); - - if (!count($this->gateways)) { - print "

Create a gateway first"; - return false; - } - - printf ("

",$_SERVER['PHP_SELF']); - print " -
- "; - - print " - - - "; - - print "
Gateway
"); - - printf ("
Prefix
"); - printf ("
Strip
"); - printf ("
Prepend
"); - printf ("
Min length
"); - printf ("
Max length
"); - - $this->printHiddenFormElements(); - - print "
-
- "; - } - - function addRecord($dictionary=array()) { - if ($dictionary['gateway_id']) { - $gateway_id = $dictionary['gateway_id']; - } else { - $gateway_id = trim($_REQUEST['gateway_id']); - } - - if ($dictionary['prefix']) { - $prefix = $dictionary['prefix']; - } else { - $prefix = trim($_REQUEST['prefix']); - } - - if ($dictionary['strip']) { - $strip = $dictionary['strip']; - } else { - $strip = trim($_REQUEST['strip']); - } - - if ($dictionary['prepend']) { - $prepend = $dictionary['prepend']; - } else { - $prepend = trim($_REQUEST['prepend']); - } - - if ($dictionary['minLength']) { - $minLength = $dictionary['minLength']; - } else { - $minLength = trim($_REQUEST['minLength']); - } - - if ($dictionary['maxLength']) { - $maxLength = $dictionary['maxLength']; - } else { - $maxLength = trim($_REQUEST['maxLength']); - } - - if (!strlen($gateway_id)) { - printf ("

Error: Missing gateway id"); - return false; - } - - $rule=array( - 'gateway_id' => intval($gateway_id), - 'prefix' => $prefix, - 'prepend' => $prepend, - 'strip' => intval($strip), - 'minLength' => intval($minLength), - 'maxLength' => intval($maxLength) - ); - - $function=array('commit' => array('name' => 'addGatewayRule', - 'parameters' => array($rule), - 'logs' => array('success' => sprintf('Gateway rule has been added'))) - ); - - unset($this->filters); - return $this->SoapEngine->execute($function,$this->html); - } - - function deleteRecord($dictionary=array()) { - if (!$dictionary['confirm'] && !$_REQUEST['confirm']) { - print "

Please press on Confirm to confirm the delete. "; - return true; - } - - if ($dictionary['id']) { - $id = $dictionary['id']; - } else { - $id = trim($this->filters['id']); - } - - if (!strlen($id)) { - print "

Error: missing rule id "; - return false; - } - - $function=array('commit' => array('name' => 'deleteGatewayRule', - 'parameters' => array(intval($id)), - 'logs' => array('success' => sprintf('Gateway rule %d has been deleted',$id))) - ); - unset($this->filters); - return $this->SoapEngine->execute($function,$this->html); - - } - - function showSeachFormCustom() { - printf ("

Rule
",$this->filters['id']); - print " - "); - printf ("
Gateway
",$this->filters['gateway_id']); - printf ("
Prefix
",$this->filters['prefix']); - } - - function showCustomerForm($name='customer_filter') { - } - - function showTextBeforeCustomerSelection() { - print "Owner"; - } - - function showRecord($rule) { - - $this->getGateways(); - - print "

Rule

"; - - printf ("
",$_SERVER['PHP_SELF']); - print ""; - - foreach (array_keys($this->Fields) as $item) { - if ($this->Fields[$item]['name']) { - $item_name=$this->Fields[$item]['name']; - } else { - $item_name=ucfirst($item); - } - - printf ("
- - ", - $item_name - ); - - if ($this->Fields[$item]['readonly']) { - printf ("
%s
", - $item, - $rule->$item, - $rule->$item - ); - } else { - if ($item == 'gateway_id') { - printf ("
"; - - } else { - printf ("
", - $item, - $rule->$item - ); - } - } - print " -
"; - } - - printf ("",$rule->reseller); - - $this->printFiltersToForm(); - $this->printHiddenFormElements(); - - print " -
- -
- "; - print "
"; - } - - function updateRecord () { - //print "

Updating rule ..."; - - if (!$_REQUEST['id_form'] || !strlen($_REQUEST['reseller_filter'])) { - return; - } - - if (!$rule = $this->getRecord($_REQUEST['id_form'])) { - return false; - } - - foreach (array_keys($this->Fields) as $item) { - $var_name=$item.'_form'; - if ($this->Fields[$item]['type'] == 'integer') { - $rule->$item = intval($_REQUEST[$var_name]); - } else { - $rule->$item = trim($_REQUEST[$var_name]); - } - } - - $function=array('commit' => array('name' => 'updateGatewayRule', - 'parameters' => array($rule), - 'logs' => array('success' => sprintf('Rule %d has been updated',$_REQUEST['id_form']))) - ); - - $result = $this->SoapEngine->execute($function,$this->html); - - dprint_r($result) ; - if ((new PEAR)->isError($result)) { - $error_msg = $result->getMessage(); - $error_fault= $result->getFault(); - $error_code = $result->getCode(); - $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); - syslog(LOG_NOTICE, $log); - return false; - } else { - return true; - } - } - - function getRecord($id) { - // Insert credetials - $this->SoapEngine->soapclient->addHeader($this->SoapEngine->SoapAuth); - - // Filter - $filter=array('id' => intval($id)); - - // Range - $range=array('start' => 0, - 'count' => 1 - ); - - // Order - $this->sorting['sortBy'] = 'gateway'; - $this->sorting['sortOrder'] = 'ASC'; - - $orderBy = array('attribute' => $this->sorting['sortBy'], - 'direction' => $this->sorting['sortOrder'] - ); - - // Compose query - $Query=array('filter' => $filter, - 'orderBy' => $orderBy, - 'range' => $range - ); - - // Call function - $this->log_action('getGatewayRules'); - $result = $this->SoapEngine->soapclient->getGatewayRules($Query); - - if ((new PEAR)->isError($result)) { - $error_msg = $result->getMessage(); - $error_fault= $result->getFault(); - $error_code = $result->getCode(); - $log=sprintf("SOAP request error from %s: %s (%s): %s",$this->SoapEngine->SOAPurl,$error_msg, $error_fault->detail->exception->errorcode,$error_fault->detail->exception->errorstring); - syslog(LOG_NOTICE, $log); - return false; - } else { - if ($result->gateway_rules[0]){ - return $result->gateway_rules[0]; - } else { - return false; - } - } - } -} +require_once 'NGNPro/Records/GatewayRules.php';