public function configfile() { Piwik::checkUserHasSuperUserAccess(); $allSettings = Settings\Manager::getAllPluginSettings(); $configValues = $this->configReader->getConfigValuesFromFiles(); $configValues = $this->configReader->addConfigValuesFromPluginSettings($configValues, $allSettings); $configValues = $this->sortConfigValues($configValues); return $this->renderTemplate('configfile', array('allConfigValues' => $configValues)); }
function addMenu() { MenuAdmin::getInstance()->add('CoreAdminHome_MenuManage', null, "", Piwik::isUserHasSomeAdminAccess(), $order = 1); MenuAdmin::getInstance()->add('CoreAdminHome_MenuDiagnostic', null, "", Piwik::isUserHasSomeAdminAccess(), $order = 10); MenuAdmin::getInstance()->add('General_Settings', null, "", Piwik::isUserHasSomeAdminAccess(), $order = 5); MenuAdmin::getInstance()->add('General_Settings', 'CoreAdminHome_MenuGeneralSettings', array('module' => 'CoreAdminHome', 'action' => 'generalSettings'), Piwik::isUserHasSomeAdminAccess(), $order = 6); MenuAdmin::getInstance()->add('CoreAdminHome_MenuManage', 'CoreAdminHome_TrackingCode', array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'), Piwik::isUserHasSomeAdminAccess(), $order = 4); MenuAdmin::getInstance()->add('General_Settings', 'CoreAdminHome_PluginSettings', array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'), SettingsManager::hasPluginsSettingsForCurrentUser(), $order = 7); }
public function configureUserMenu(MenuUser $menu) { if (!Piwik::isUserIsAnonymous()) { $menu->addManageItem('CoreAdminHome_TrackingCode', $this->urlForAction('trackingCodeGenerator'), $order = 10); if (SettingsManager::hasUserPluginsSettingsForCurrentUser()) { $menu->addPersonalItem('CoreAdminHome_PluginSettings', $this->urlForAction('userPluginSettings'), $order = 15); } } }
public function configureAdminMenu(MenuAdmin $menu) { $hasAdminAccess = Piwik::isUserHasSomeAdminAccess(); $menu->add('CoreAdminHome_MenuManage', null, "", $hasAdminAccess, $order = 1); $menu->add('CoreAdminHome_MenuDiagnostic', null, "", $hasAdminAccess, $order = 10); $menu->add('General_Settings', null, "", $hasAdminAccess, $order = 5); $menu->add('General_Settings', 'CoreAdminHome_MenuGeneralSettings', array('module' => 'CoreAdminHome', 'action' => 'generalSettings'), $hasAdminAccess, $order = 6); $menu->add('CoreAdminHome_MenuManage', 'CoreAdminHome_TrackingCode', array('module' => 'CoreAdminHome', 'action' => 'trackingCodeGenerator'), $hasAdminAccess, $order = 4); $menu->add('General_Settings', 'CoreAdminHome_PluginSettings', array('module' => 'CoreAdminHome', 'action' => 'pluginSettings'), SettingsManager::hasPluginsSettingsForCurrentUser(), $order = 7); }
public function configureAdminMenu(MenuAdmin $menu) { $hasAdminAccess = Piwik::isUserHasSomeAdminAccess(); if ($hasAdminAccess) { $menu->addManageItem(null, "", $order = 1); $menu->addSettingsItem(null, "", $order = 5); $menu->addDiagnosticItem(null, "", $order = 10); $menu->addDevelopmentItem(null, "", $order = 15); $menu->addSettingsItem('CoreAdminHome_MenuGeneralSettings', $this->urlForAction('generalSettings'), $order = 6); $menu->addManageItem('CoreAdminHome_TrackingCode', $this->urlForAction('trackingCodeGenerator'), $order = 4); } if (SettingsManager::hasPluginsSettingsForCurrentUser()) { $menu->addSettingsItem('CoreAdminHome_PluginSettings', $this->urlForAction('pluginSettings'), $order = 7); } }
public function setPluginSettings() { Piwik::checkUserIsNotAnonymous(); Json::sendHeaderJSON(); $nonce = Common::getRequestVar('nonce', null, 'string'); if (!Nonce::verifyNonce(static::SET_PLUGIN_SETTINGS_NONCE, $nonce)) { return json_encode(array('result' => 'error', 'message' => Piwik::translate('General_ExceptionNonceMismatch'))); } $pluginsSettings = SettingsManager::getPluginSettingsForCurrentUser(); try { foreach ($pluginsSettings as $pluginName => $pluginSetting) { foreach ($pluginSetting->getSettingsForCurrentUser() as $setting) { $value = $this->findSettingValueFromRequest($pluginName, $setting->getKey()); if (!is_null($value)) { $setting->setValue($value); } } } foreach ($pluginsSettings as $pluginSetting) { $pluginSetting->save(); } } catch (Exception $e) { $message = html_entity_decode($e->getMessage(), ENT_QUOTES, 'UTF-8'); return json_encode(array('result' => 'error', 'message' => $message)); } Nonce::discardNonce(static::SET_PLUGIN_SETTINGS_NONCE); return json_encode(array('result' => 'success')); }
private function getPluginNamesHavingSettingsForCurrentUser() { return SettingsManager::getPluginNamesHavingSystemSettings(); }
/** * Uninstalls a Plugin (deletes plugin files from the disk) * Only deactivated plugins can be uninstalled * * @param $pluginName * @throws \Exception * @return bool */ public function uninstallPlugin($pluginName) { if ($this->isPluginLoaded($pluginName)) { throw new \Exception("To uninstall the plugin {$pluginName}, first disable it in Piwik > Settings > Plugins"); } $this->loadAllPluginsAndGetTheirInfo(); \Piwik\Settings\Manager::cleanupPluginSettings($pluginName); $this->executePluginDeactivate($pluginName); $this->executePluginUninstall($pluginName); $this->removePluginFromPluginsInstalledConfig($pluginName); $this->unloadPluginFromMemory($pluginName); $this->removePluginFromConfig($pluginName); $this->removeInstalledVersionFromOptionTable($pluginName); $this->clearCache($pluginName); self::deletePluginFromFilesystem($pluginName); if ($this->isPluginInFilesystem($pluginName)) { return false; } return true; }
private function getPluginNamesHavingSettingsForCurrentUser() { return array_keys(SettingsManager::getPluginSettingsForCurrentUser()); }
/** * Unsets all settings for a user. The settings will be removed from the database. Used when * a user is deleted. * * @param string $userLogin * @throws \Exception If the `$userLogin` is empty. */ public static function removeAllUserSettingsForUser($userLogin) { if (empty($userLogin)) { throw new \Exception('No userLogin specified'); } $pluginsSettings = Manager::getAllPluginSettings(); foreach ($pluginsSettings as $pluginSettings) { $settings = $pluginSettings->getSettings(); foreach ($settings as $setting) { if ($setting instanceof UserSetting) { $setting->setUserLogin($userLogin); $pluginSettings->removeSettingValue($setting); } } $pluginSettings->save(); } }
/** * Uninstalls a Plugin (deletes plugin files from the disk) * Only deactivated plugins can be uninstalled * * @param $pluginName * @throws \Exception * @return bool */ public function uninstallPlugin($pluginName) { if ($this->isPluginLoaded($pluginName)) { throw new \Exception("To uninstall the plugin {$pluginName}, first disable it in Piwik > Settings > Plugins"); } $this->returnLoadedPluginsInfo(); try { $plugin = $this->getLoadedPlugin($pluginName); $plugin->uninstall(); } catch (\Exception $e) { } Option::delete('version_' . $pluginName); $this->removePluginFromPluginsConfig($pluginName); $this->removePluginFromPluginsInstalledConfig($pluginName); $this->removePluginFromTrackerConfig($pluginName); PiwikConfig::getInstance()->forceSave(); \Piwik\Settings\Manager::cleanupPluginSettings($pluginName); $this->clearCache($pluginName); self::deletePluginFromFilesystem($pluginName); if ($this->isPluginInFilesystem($pluginName)) { return false; } return true; }