示例#1
0
 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);
 }
示例#3
0
 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);
         }
     }
 }
示例#4
0
 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);
 }
示例#5
0
文件: Menu.php 项目: a4tunado/piwik
 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);
     }
 }
示例#6
0
 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'));
 }
示例#7
0
 private function getPluginNamesHavingSettingsForCurrentUser()
 {
     return SettingsManager::getPluginNamesHavingSystemSettings();
 }
示例#8
0
文件: Manager.php 项目: 962464/piwik
 /**
  * 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;
 }
示例#9
0
 private function getPluginNamesHavingSettingsForCurrentUser()
 {
     return array_keys(SettingsManager::getPluginSettingsForCurrentUser());
 }
示例#10
0
 /**
  * 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();
     }
 }
示例#11
0
 /**
  * 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;
 }