mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-30 09:14:09 +02:00
PhperrorController: redirect to dashboard once...
...all dependencies are satisfied
This commit is contained in:
parent
5c93594687
commit
cdb92e18de
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user