diff options
author | Stefan Giehl <stefan@piwik.org> | 2017-03-18 00:10:21 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-18 00:10:21 +0300 |
commit | 08d24b640509e20e99722e0e32fc939788512bbb (patch) | |
tree | 479709b1eb33cadd648a0935837fa7037474e812 /plugins | |
parent | 13db4c0c91292a2981e633060a49efe2a38bdb1c (diff) |
Introduces new config setting to enabled plugin upload (#11445)
* introduces new config setting to enabled plugin upload (disabled by default)
* updates changelog
* updates expected screenshot
* improve message
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/CorePluginsAdmin/Controller.php | 4 | ||||
-rw-r--r-- | plugins/CorePluginsAdmin/CorePluginsAdmin.php | 5 | ||||
-rw-r--r-- | plugins/Marketplace/Controller.php | 1 | ||||
-rw-r--r-- | plugins/Marketplace/lang/en.json | 1 | ||||
-rw-r--r-- | plugins/Marketplace/templates/overview.twig | 7 |
5 files changed, 18 insertions, 0 deletions
diff --git a/plugins/CorePluginsAdmin/Controller.php b/plugins/CorePluginsAdmin/Controller.php index 13872a3793..5861ae0a71 100644 --- a/plugins/CorePluginsAdmin/Controller.php +++ b/plugins/CorePluginsAdmin/Controller.php @@ -88,6 +88,10 @@ class Controller extends Plugin\ControllerAdmin static::dieIfPluginsAdminIsDisabled(); Piwik::checkUserHasSuperUserAccess(); + if (!CorePluginsAdmin::isPluginUploadEnabled()) { + throw new \Exception('Plugin upload disabled by config'); + } + $nonce = Common::getRequestVar('nonce', null, 'string'); if (!Nonce::verifyNonce(MarketplaceController::INSTALL_NONCE, $nonce)) { diff --git a/plugins/CorePluginsAdmin/CorePluginsAdmin.php b/plugins/CorePluginsAdmin/CorePluginsAdmin.php index df8934519b..d1c0a3fee1 100644 --- a/plugins/CorePluginsAdmin/CorePluginsAdmin.php +++ b/plugins/CorePluginsAdmin/CorePluginsAdmin.php @@ -36,6 +36,11 @@ class CorePluginsAdmin extends Plugin return (bool) Config::getInstance()->General['enable_plugins_admin']; } + public static function isPluginUploadEnabled() + { + return (bool) Config::getInstance()->General['enable_plugin_upload']; + } + public function getJsFiles(&$jsFiles) { $jsFiles[] = "libs/bower_components/jQuery.dotdotdot/src/js/jquery.dotdotdot.min.js"; diff --git a/plugins/Marketplace/Controller.php b/plugins/Marketplace/Controller.php index 986ee5cf9a..d04e374f74 100644 --- a/plugins/Marketplace/Controller.php +++ b/plugins/Marketplace/Controller.php @@ -271,6 +271,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin $view->isPluginsAdminEnabled = CorePluginsAdmin::isPluginsAdminEnabled(); $view->isAutoUpdatePossible = SettingsPiwik::isAutoUpdatePossible(); $view->isAutoUpdateEnabled = SettingsPiwik::isAutoUpdateEnabled(); + $view->isPluginUploadEnabled = CorePluginsAdmin::isPluginUploadEnabled(); return $view->render(); } diff --git a/plugins/Marketplace/lang/en.json b/plugins/Marketplace/lang/en.json index 1278adf2c2..f27bfc16bd 100644 --- a/plugins/Marketplace/lang/en.json +++ b/plugins/Marketplace/lang/en.json @@ -103,6 +103,7 @@ "Updated": "Updated", "UpdatingPlugin": "Updating %1$s", "UploadZipFile": "Upload ZIP file", + "PluginUploadDisabled": "Plugin upload is disabled in config file. In order to enable this feature please update your configuration or contact your administrator", "LicenseKeyExpiresSoon": "Your license key expires soon, please contact %1$s.", "LicenseKeyIsExpired": "Your license key is expired, please contact %1$s.", "MultiServerEnvironmentWarning": "You cannot install or update the plugin directly as you are using Piwik on multiple servers. The plugin would be only installed on one server. Instead download the plugin and deploy it manually to all your servers.", diff --git a/plugins/Marketplace/templates/overview.twig b/plugins/Marketplace/templates/overview.twig index 9541ab0a16..76123fc2a1 100644 --- a/plugins/Marketplace/templates/overview.twig +++ b/plugins/Marketplace/templates/overview.twig @@ -31,6 +31,7 @@ <div class="ui-confirm" id="installPluginByUpload"> <h2>{{ 'Marketplace_TeaserExtendPiwikByUpload'|translate }}</h2> + {% if isPluginUploadEnabled %} <p class="description"> {{ 'Marketplace_AllowedUploadFormats'|translate }} </p> <form enctype="multipart/form-data" method="post" id="uploadPluginForm" @@ -39,6 +40,12 @@ <br /> <input class="startUpload btn" type="submit" value="{{ 'Marketplace_UploadZipFile'|translate }}"> </form> + {% else %} + <p class="description"> {{ 'Marketplace_PluginUploadDisabled'|translate|raw }} </p> + <pre>[General] +enable_plugin_upload = 1</pre> + <input role="yes" type="button" value="{{ 'General_Ok'|translate }}"/> + {% endif %} </div> <div class="row marketplaceActions" ng-controller="PiwikMarketplaceController as marketplace"> |