PhperrorController: redirect to dashboard once...

...all dependencies are satisfied
This commit is contained in:
Thomas Gelf 2019-09-20 11:22:58 +02:00
parent 5c93594687
commit cdb92e18de

View File

@ -3,6 +3,7 @@
namespace Icinga\Module\Director\Controllers;
use Icinga\Application\Icinga;
use Icinga\Application\Modules\Manager;
use Icinga\Web\Controller;
class PhperrorController extends Controller
@ -23,9 +24,31 @@ class PhperrorController extends Controller
public function dependenciesAction()
{
$dependencies = $this->view->dependencies = $this->Module()->getDependencies();
$modules = $this->view->modules = Icinga::app()->getModuleManager();
// Hint: we're duplicating some code here
$satisfied = true;
foreach ($dependencies as $module => $required) {
/** @var Manager $this ->modules */
if ($modules->hasEnabled($module)) {
$installed = $modules->getModule($module, false)->getVersion();
$installed = \ltrim($installed, 'v'); // v0.6.0 VS 0.6.0
if (\preg_match('/^([<>=]+)\s*v?(\d+\.\d+\.\d+)$/', $required, $match)) {
$operator = $match[1];
$vRequired = $match[2];
if (\version_compare($installed, $vRequired, $operator)) {
continue;
}
}
}
$satisfied = false;
}
if ($satisfied) {
$this->redirectNow('director');
}
$this->setAutorefreshInterval(15);
$this->view->dependencies = $this->Module()->getDependencies();
$this->view->modules = Icinga::app()->getModuleManager();
$this->getTabs()->add('error', array(
'label' => $this->translate('Error'),
'url' => $this->getRequest()->getUrl()