From 5ff31e2bff9c3e4b406197bc418a768da3b52d19 Mon Sep 17 00:00:00 2001 From: Rowan Thorpe Date: Thu, 18 Jun 2015 21:20:45 +0300 Subject: [PATCH] Add config-var to make as112 optional in UI (Fixes #217) --- application/configs/application.ini.dist | 9 +++++++++ application/controllers/CustomerController.php | 1 + .../controllers/VlanInterfaceController.php | 4 ++-- application/views/customer/detail.phtml | 9 +++++++-- .../views/customer/overview-tabs/overview.phtml | 6 ++++-- .../views/customer/overview-tabs/ports/port.phtml | 9 +++++++-- .../views/virtual-interface/forms/add-wizard.phtml | 4 +++- .../vlan-interface/forms/vlan-interface.phtml | 4 +++- library/IXP/Controller/Action.php | 5 +++-- library/IXP/Controller/CliAction.php | 5 +++-- library/IXP/Controller/Trait/Common.php | 14 ++++++++++++++ 11 files changed, 56 insertions(+), 14 deletions(-) diff --git a/application/configs/application.ini.dist b/application/configs/application.ini.dist index b03d5a177..28733e3e7 100644 --- a/application/configs/application.ini.dist +++ b/application/configs/application.ini.dist @@ -105,6 +105,15 @@ reseller.enabled = true ;; reseller.no_billing_for_resold_customers = true +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; +;; Specifies whether to display and enable control of AS112 functionality for customers +;; +;; See https://github.com/inex/IXP-Manager/wiki/AS112 +;; + +as112_ui_active = true + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; We use Minify to bundle and compress CSS and JS in diff --git a/application/controllers/CustomerController.php b/application/controllers/CustomerController.php index 36e1db9a2..356c062ec 100644 --- a/application/controllers/CustomerController.php +++ b/application/controllers/CustomerController.php @@ -518,6 +518,7 @@ protected function formPostProcess( $form, $object, $isEdit, $options = null, $c $form->enableResller( $this->resellerMode() ); $form->setMultiIXP( $this->multiIXP(), $isEdit ); + $form->setAs112client( $this->as112UiActive(), $isEdit ); if( $this->resellerMode() ) { diff --git a/application/controllers/VlanInterfaceController.php b/application/controllers/VlanInterfaceController.php index 65c8448bb..c4f01c006 100644 --- a/application/controllers/VlanInterfaceController.php +++ b/application/controllers/VlanInterfaceController.php @@ -104,10 +104,10 @@ protected function _feInit() 'ipv6canping' => 'Monitoring Enabled via IPv6 ICMP', 'ipv4monitorrcbgp' => 'Monitor Route Collector IPv4 BGP Session', 'ipv6monitorrcbgp' => 'Monitor Route Collector IPv6 BGP Session', - 'as112client' => 'AS112 Client', 'busyhost' => 'Busy Host?', 'notes' => 'Notes' - ] + ], + ( $this->as112UiActive() ? ['as112client' => 'AS112 Client'] : [] ) ); break; diff --git a/application/views/customer/detail.phtml b/application/views/customer/detail.phtml index 4d6fd6bf4..8ed2fc3f3 100644 --- a/application/views/customer/detail.phtml +++ b/application/views/customer/detail.phtml @@ -243,8 +243,13 @@ Route Server Client: {if $vli->getRsclient()}Yes{else}No{/if} - AS112 Client: - {if $vli->getAs112client()}Yes{else}No{/if} + {if $as112UiActive} + AS112 Client: + {if $vli->getAs112client()}Yes{else}No{/if} + {else} + + + {/if} diff --git a/application/views/customer/overview-tabs/overview.phtml b/application/views/customer/overview-tabs/overview.phtml index d687af8ba..2e1ff2592 100644 --- a/application/views/customer/overview-tabs/overview.phtml +++ b/application/views/customer/overview-tabs/overview.phtml @@ -25,8 +25,10 @@ {if not $cust->isTypeAssociate()} RS Client -     - AS112 + {if $as112UiActive} +     + AS112 + {/if} {/if} diff --git a/application/views/customer/overview-tabs/ports/port.phtml b/application/views/customer/overview-tabs/ports/port.phtml index f115ee35d..f6b418b8c 100644 --- a/application/views/customer/overview-tabs/ports/port.phtml +++ b/application/views/customer/overview-tabs/ports/port.phtml @@ -217,8 +217,13 @@ Route Server Client: {if $vli->getRsclient()}Yes{else}No{/if} - AS112 Client: - {if $vli->getAs112client()}Yes{else}No{/if} + {if $as112UiActive} + AS112 Client: + {if $vli->getAs112client()}Yes{else}No{/if} + {else} + + + {/if} diff --git a/application/views/virtual-interface/forms/add-wizard.phtml b/application/views/virtual-interface/forms/add-wizard.phtml index d419b6046..8526e3f33 100644 --- a/application/views/virtual-interface/forms/add-wizard.phtml +++ b/application/views/virtual-interface/forms/add-wizard.phtml @@ -47,7 +47,9 @@ {$element->irrdbfilter} {$element->mcastenabled} {$element->rsclient} - {$element->as112client} + {if $as112UiActive} + {$element->as112client} + {/if} diff --git a/application/views/vlan-interface/forms/vlan-interface.phtml b/application/views/vlan-interface/forms/vlan-interface.phtml index 8b271ce7a..7f37d57b4 100644 --- a/application/views/vlan-interface/forms/vlan-interface.phtml +++ b/application/views/vlan-interface/forms/vlan-interface.phtml @@ -15,7 +15,9 @@ {$element->maxbgpprefix} {$element->rsclient} - {$element->as112client} + {if $as112UiActive} + {$element->as112client} + {/if} {$element->busyhost} diff --git a/library/IXP/Controller/Action.php b/library/IXP/Controller/Action.php index 236a161bf..98ec716cc 100644 --- a/library/IXP/Controller/Action.php +++ b/library/IXP/Controller/Action.php @@ -88,8 +88,9 @@ public function __construct( $this->view->registerClass( 'SWITCHPORT', '\\Entities\\SwitchPort' ); $this->view->registerClass( 'VLAN', '\\Entities\\Vlan' ); - $this->view->resellerMode = $this->resellerMode(); - $this->view->multiIXP = $this->multiIXP(); + $this->view->resellerMode = $this->resellerMode(); + $this->view->multiIXP = $this->multiIXP(); + $this->view->as112UiActive = $this->as112UiActive(); if( $this->getAuth()->hasIdentity() && $this->getUser()->getPrivs() == Entities\User::AUTH_SUPERUSER ) $this->superUserSetup(); diff --git a/library/IXP/Controller/CliAction.php b/library/IXP/Controller/CliAction.php index 551500970..999d9125d 100644 --- a/library/IXP/Controller/CliAction.php +++ b/library/IXP/Controller/CliAction.php @@ -59,8 +59,9 @@ public function __construct( $this->view->registerClass( 'SWITCHPORT', '\\Entities\\SwitchPort' ); $this->view->registerClass( 'VLAN', '\\Entities\\Vlan' ); - $this->view->resellerMode = $this->resellerMode(); - $this->view->multiIXP = $this->multiIXP(); + $this->view->resellerMode = $this->resellerMode(); + $this->view->multiIXP = $this->multiIXP(); + $this->view->as112UiActive = $this->as112UiActive(); } diff --git a/library/IXP/Controller/Trait/Common.php b/library/IXP/Controller/Trait/Common.php index 9be7e425d..37865ee2d 100644 --- a/library/IXP/Controller/Trait/Common.php +++ b/library/IXP/Controller/Trait/Common.php @@ -61,6 +61,20 @@ protected function multiIXP() return ( isset( $this->_options['multiixp']['enabled'] ) && $this->_options['multiixp']['enabled'] ); } + /** + * Checks if as112 is activated in the UI. + * + * To enable as112 in the UI set as112_ui_active to true in application.ini + * + * @see https://github.com/inex/IXP-Manager/wiki/AS112 + * + * @return bool + */ + protected function as112UiActive() + { + return ( isset( $this->_options['as112_ui_active'] ) && $this->_options['as112_ui_active'] ); + } + /** * Loads a customer object via an optional posted / getted `shortname` parameter.