Skip to content
Extraits de code Groupes Projets
Valider 65a62b8a rédigé par Thomas Steur's avatar Thomas Steur
Parcourir les fichiers

refs #4053 use similar code for themes and plugins / install and update

parent c08f6c1c
Branches
Étiquettes
Aucune requête de fusion associée trouvée
...@@ -24,7 +24,6 @@ use Piwik\View; ...@@ -24,7 +24,6 @@ use Piwik\View;
use Piwik\PluginsManager; use Piwik\PluginsManager;
/** /**
*
* @package CorePluginsAdmin * @package CorePluginsAdmin
*/ */
class Controller extends \Piwik\Controller\Admin class Controller extends \Piwik\Controller\Admin
...@@ -32,11 +31,11 @@ class Controller extends \Piwik\Controller\Admin ...@@ -32,11 +31,11 @@ class Controller extends \Piwik\Controller\Admin
private $validSortMethods = array('popular', 'newest', 'alpha'); private $validSortMethods = array('popular', 'newest', 'alpha');
private $defaultSortMethod = 'popular'; private $defaultSortMethod = 'popular';
public function updatePlugin() private function createUpdateOrInstallView($template, $nonceName)
{ {
Piwik::checkUserIsSuperUser(); Piwik::checkUserIsSuperUser();
$view = $this->configureView('@CorePluginsAdmin/updatePlugin'); $view = $this->configureView('@CorePluginsAdmin/' . $template);
$view->errorMessage = ''; $view->errorMessage = '';
$pluginName = Common::getRequestVar('pluginName', '', 'string'); $pluginName = Common::getRequestVar('pluginName', '', 'string');
...@@ -49,13 +48,12 @@ class Controller extends \Piwik\Controller\Admin ...@@ -49,13 +48,12 @@ class Controller extends \Piwik\Controller\Admin
$view->plugin = array('name' => $pluginName); $view->plugin = array('name' => $pluginName);
if (!Nonce::verifyNonce('CorePluginsAdmin.updatePlugin', $nonce)) { if (!Nonce::verifyNonce('CorePluginsAdmin.' . $nonceName, $nonce)) {
$view->errorMessage = Piwik_Translate('ExceptionNonceMismatch'); $view->errorMessage = Piwik_Translate('ExceptionNonceMismatch');
echo $view->render(); return $view;
return;
} }
Nonce::discardNonce('CorePluginsAdmin.updatePlugin'); Nonce::discardNonce('CorePluginsAdmin.' . $nonceName);
try { try {
$pluginInstaller = new PluginInstaller($pluginName); $pluginInstaller = new PluginInstaller($pluginName);
...@@ -63,54 +61,25 @@ class Controller extends \Piwik\Controller\Admin ...@@ -63,54 +61,25 @@ class Controller extends \Piwik\Controller\Admin
} catch (PluginInstallerException $e) { } catch (PluginInstallerException $e) {
$view->errorMessage = $e->getMessage(); $view->errorMessage = $e->getMessage();
echo $view->render(); return $view;
return;
} }
$marketplace = new MarketplaceApiClient(); $marketplace = new MarketplaceApiClient();
$view->plugin = $marketplace->getPluginInfo($pluginName); $view->plugin = $marketplace->getPluginInfo($pluginName);
return $view;
}
public function updatePlugin()
{
$view = $this->createUpdateOrInstallView('updatePlugin', 'updatePlugin');
echo $view->render(); echo $view->render();
} }
public function installPlugin() public function installPlugin()
{ {
Piwik::checkUserIsSuperUser(); $view = $this->createUpdateOrInstallView('installPlugin', 'installPlugin');
$view->nonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin');
$view = $this->configureView('@CorePluginsAdmin/installPlugin');
$view->errorMessage = '';
$pluginName = Common::getRequestVar('pluginName', '', 'string');
$pluginName = strip_tags($pluginName);
$nonce = Common::getRequestVar('nonce', '', 'string');
if (empty($pluginName)) {
throw new \Exception('Plugin parameter is missing');
}
$view->plugin = array('name' => $pluginName);
if (!Nonce::verifyNonce('CorePluginsAdmin.installPlugin', $nonce)) {
$view->errorMessage = Piwik_Translate('ExceptionNonceMismatch');
echo $view->render();
return;
}
Nonce::discardNonce('CorePluginsAdmin.installPlugin');
try {
$pluginInstaller = new PluginInstaller($pluginName);
$pluginInstaller->installOrUpdatePluginFromMarketplace();
} catch (PluginInstallerException $e) {
$view->errorMessage = $e->getMessage();
echo $view->render();
return;
}
$marketplace = new MarketplaceApiClient();
$view->plugin = $marketplace->getPluginInfo($pluginName);
$view->nonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin');
echo $view->render(); echo $view->render();
} }
...@@ -131,7 +100,7 @@ class Controller extends \Piwik\Controller\Admin ...@@ -131,7 +100,7 @@ class Controller extends \Piwik\Controller\Admin
echo $view->render(); echo $view->render();
} }
public function browsePlugins() private function createBrowsePluginsOrThemesView($template, $themesOnly)
{ {
$query = Common::getRequestVar('query', '', 'string', $_POST); $query = Common::getRequestVar('query', '', 'string', $_POST);
$query = strip_tags($query); $query = strip_tags($query);
...@@ -141,10 +110,10 @@ class Controller extends \Piwik\Controller\Admin ...@@ -141,10 +110,10 @@ class Controller extends \Piwik\Controller\Admin
$sort = $this->defaultSortMethod; $sort = $this->defaultSortMethod;
} }
$view = $this->configureView('@CorePluginsAdmin/browsePlugins'); $view = $this->configureView('@CorePluginsAdmin/' . $template);
$marketplace = new Marketplace(); $marketplace = new Marketplace();
$view->plugins = $marketplace->searchPlugins($query, $sort, $themesOnly = false); $view->plugins = $marketplace->searchPlugins($query, $sort, $themesOnly);
$view->query = $query; $view->query = $query;
$view->sort = $sort; $view->sort = $sort;
...@@ -152,30 +121,18 @@ class Controller extends \Piwik\Controller\Admin ...@@ -152,30 +121,18 @@ class Controller extends \Piwik\Controller\Admin
$view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin'); $view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin');
$view->isSuperUser = Piwik::isUserIsSuperUser(); $view->isSuperUser = Piwik::isUserIsSuperUser();
return $view;
}
public function browsePlugins()
{
$view = $this->createBrowsePluginsOrThemesView('browsePlugins', $themesOnly = false);
echo $view->render(); echo $view->render();
} }
public function browseThemes() public function browseThemes()
{ {
$query = Common::getRequestVar('query', '', 'string', $_POST); $view = $this->createBrowsePluginsOrThemesView('browseThemes', $themesOnly = true);
$query = strip_tags($query);
$sort = Common::getRequestVar('sort', $this->defaultSortMethod, 'string');
if (!in_array($sort, $this->validSortMethods)) {
$sort = $this->defaultSortMethod;
}
$view = $this->configureView('@CorePluginsAdmin/browseThemes');
$marketplace = new Marketplace();
$view->plugins = $marketplace->searchPlugins($query, $sort, $themesOnly = true);
$view->query = $query;
$view->sort = $sort;
$view->installNonce = Nonce::getNonce('CorePluginsAdmin.installPlugin');
$view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin');
$view->isSuperUser = Piwik::isUserIsSuperUser();
echo $view->render(); echo $view->render();
} }
...@@ -185,14 +142,15 @@ class Controller extends \Piwik\Controller\Admin ...@@ -185,14 +142,15 @@ class Controller extends \Piwik\Controller\Admin
echo $view->render(); echo $view->render();
} }
function plugins() private function createPluginsOrThemesView($template, $themesOnly)
{ {
Piwik::checkUserIsSuperUser(); Piwik::checkUserIsSuperUser();
$activated = Common::getRequestVar('activated', false, 'integer', $_GET); $activated = Common::getRequestVar('activated', false, 'integer', $_GET);
$pluginName = Common::getRequestVar('pluginName', '', 'string'); $pluginName = Common::getRequestVar('pluginName', '', 'string');
$pluginName = strip_tags($pluginName);
$view = $this->configureView('@CorePluginsAdmin/plugins'); $view = $this->configureView('@CorePluginsAdmin/' . $template);
$view->activatedPluginName = ''; $view->activatedPluginName = '';
if ($activated && $pluginName) { if ($activated && $pluginName) {
...@@ -201,38 +159,23 @@ class Controller extends \Piwik\Controller\Admin ...@@ -201,38 +159,23 @@ class Controller extends \Piwik\Controller\Admin
$view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin'); $view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin');
$view->activateNonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin'); $view->activateNonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin');
$view->pluginsInfo = $this->getPluginsInfo(); $view->pluginsInfo = $this->getPluginsInfo($themesOnly);
$marketplace = new Marketplace(); $marketplace = new Marketplace();
$view->pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly = false); $view->pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($themesOnly);
return $view;
}
function plugins()
{
$view = $this->createPluginsOrThemesView('plugins', $themesOnly = false);
echo $view->render(); echo $view->render();
} }
function themes() function themes()
{ {
Piwik::checkUserIsSuperUser(); $view = $this->createPluginsOrThemesView('themes', $themesOnly = true);
$activated = Common::getRequestVar('activated', false, 'integer', $_GET);
$pluginName = Common::getRequestVar('pluginName', '', 'string');
$pluginName = strip_tags($pluginName);
$view = $this->configureView('@CorePluginsAdmin/themes');
$view->activatedPluginName = '';
if ($activated && $pluginName) {
$view->activatedPluginName = $pluginName;
}
$pluginsInfo = $this->getPluginsInfo($themesOnly = true);
$view->updateNonce = Nonce::getNonce('CorePluginsAdmin.updatePlugin');
$view->activateNonce = Nonce::getNonce('CorePluginsAdmin.activatePlugin');
$view->pluginsInfo = $pluginsInfo;
$marketplace = new Marketplace();
$view->pluginsHavingUpdate = $marketplace->getPluginsHavingUpdate($pluginsInfo, $themesOnly = true);
echo $view->render(); echo $view->render();
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter