From bd41c77e035ff2a674a68c749b69bea8cfd727b2 Mon Sep 17 00:00:00 2001
From: mattab <matthieu.aubry@gmail.com>
Date: Sun, 4 May 2014 17:24:45 +1200
Subject: [PATCH] Fixes  #5080 Installation: when there is already a Super
 User, skip the installation step + rename step name

---
 plugins/Installation/Controller.php              | 16 ++++++++++------
 .../{FormGeneralSetup.php => FormSuperUser.php}  |  2 +-
 .../{generalSetup.twig => setupSuperUser.twig}   |  0
 3 files changed, 11 insertions(+), 7 deletions(-)
 rename plugins/Installation/{FormGeneralSetup.php => FormSuperUser.php} (99%)
 rename plugins/Installation/templates/{generalSetup.twig => setupSuperUser.twig} (100%)

diff --git a/plugins/Installation/Controller.php b/plugins/Installation/Controller.php
index 8b0f8594b2..15ec5614cc 100644
--- a/plugins/Installation/Controller.php
+++ b/plugins/Installation/Controller.php
@@ -25,7 +25,6 @@ use Piwik\Plugin\Manager;
 use Piwik\Plugins\CoreUpdater\CoreUpdater;
 use Piwik\Plugins\LanguagesManager\LanguagesManager;
 use Piwik\Plugins\SitesManager\API as APISitesManager;
-use Piwik\Plugins\SitesManager\API;
 use Piwik\Plugins\UserCountry\LocationProvider;
 use Piwik\Plugins\UsersManager\API as APIUsersManager;
 use Piwik\ProxyHeaders;
@@ -46,7 +45,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
         'systemCheck'       => 'Installation_SystemCheck',
         'databaseSetup'     => 'Installation_DatabaseSetup',
         'tablesCreation'    => 'Installation_Tables',
-        'generalSetup'      => 'Installation_SuperUser',
+        'setupSuperUser'    => 'Installation_SuperUser',
         'firstWebsiteSetup' => 'Installation_SetupWebsite',
         'trackingCode'      => 'General_JsTrackingTag',
         'finished'          => 'Installation_Congratulations',
@@ -251,17 +250,22 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
     /**
      * Installation Step 5: General Set-up (superuser login/password/email and subscriptions)
      */
-    function generalSetup()
+    function setupSuperUser()
     {
         $this->checkPiwikIsNotInstalled();
 
+        $this->initObjectsToCallAPI();
+        if(count(APIUsersManager::getInstance()->getUsersHavingSuperUserAccess()) > 0) {
+            $this->redirectToNextStep('setupSuperUser');
+        }
+
         $view = new View(
-            '@Installation/generalSetup',
+            '@Installation/setupSuperUser',
             $this->getInstallationSteps(),
             __FUNCTION__
         );
 
-        $form = new FormGeneralSetup();
+        $form = new FormSuperUser();
 
         if ($form->validate()) {
 
@@ -295,7 +299,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin
 
         $this->initObjectsToCallAPI();
 
-        if(count(API::getInstance()->getAllSitesId()) > 0) {
+        if(count(APISitesManager::getInstance()->getAllSitesId()) > 0) {
             // if there is a already a website, skip this step and trackingCode step
             $this->redirectToNextStep('trackingCode');
         }
diff --git a/plugins/Installation/FormGeneralSetup.php b/plugins/Installation/FormSuperUser.php
similarity index 99%
rename from plugins/Installation/FormGeneralSetup.php
rename to plugins/Installation/FormSuperUser.php
index 146c12270a..5e886983e4 100644
--- a/plugins/Installation/FormGeneralSetup.php
+++ b/plugins/Installation/FormSuperUser.php
@@ -18,7 +18,7 @@ use Piwik\QuickForm2;
 /**
  *
  */
-class FormGeneralSetup extends QuickForm2
+class FormSuperUser extends QuickForm2
 {
     function __construct($id = 'generalsetupform', $method = 'post', $attributes = null, $trackSubmit = false)
     {
diff --git a/plugins/Installation/templates/generalSetup.twig b/plugins/Installation/templates/setupSuperUser.twig
similarity index 100%
rename from plugins/Installation/templates/generalSetup.twig
rename to plugins/Installation/templates/setupSuperUser.twig
-- 
GitLab