Пример #1
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addManageItem('UsersManager_MenuUsers', array('module' => 'UsersManager', 'action' => 'index'), $order = 2);
         $menu->addManageItem('UsersManager_MenuUserSettings', array('module' => 'UsersManager', 'action' => 'userSettings'), $order = 3);
     }
 }
Пример #2
0
 public function demo()
 {
     if (!Development::isEnabled() || !Piwik::isUserHasSomeAdminAccess()) {
         return;
     }
     return $this->renderTemplate('demo');
 }
Пример #3
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addManageItem('UsersManager_MenuUsers', $this->urlForAction('index'), $order = 2);
         $menu->addManageItem('UsersManager_MenuUserSettings', $this->urlForAction('userSettings'), $order = 3);
     }
 }
Пример #4
0
 public function configureUserMenu(MenuUser $menu)
 {
     $menu->registerMenuIcon('UsersManager_MenuPersonal', 'icon-user-personal');
     $menu->registerMenuIcon('CoreAdminHome_MenuManage', 'icon-user-manage');
     $menu->registerMenuIcon('CorePluginsAdmin_MenuPlatform', 'icon-user-platform');
     if (Development::isEnabled() && Piwik::isUserHasSomeAdminAccess()) {
         $menu->addPlatformItem('UI Demo', $this->urlForAction('demo'), $order = 15);
     }
 }
Пример #5
0
 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);
 }
Пример #6
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addManageItem('UsersManager_MenuUsers', $this->urlForAction('index'), $order = 2);
     }
     if (Piwik::hasUserSuperUserAccess() && API::getInstance()->getSitesAccessFromUser('anonymous')) {
         $menu->addSettingsItem('UsersManager_AnonymousUser', $this->urlForAction('anonymousSettings'), $order = 20);
     }
 }
Пример #7
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);
 }
Пример #8
0
 public function configureTopMenu(MenuTop $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $url = $this->urlForModuleAction('SitesManager', 'index');
         if (Piwik::hasUserSuperUserAccess()) {
             $url = $this->urlForAction('generalSettings');
         }
         $menu->addItem('CoreAdminHome_Administration', null, $url, 10);
     }
 }
Пример #9
0
 /**
  * The "Manage Users and Permissions" Admin UI screen
  */
 function index()
 {
     Piwik::checkUserIsNotAnonymous();
     $view = new View('@UsersManager/index');
     $IdSitesAdmin = APISitesManager::getInstance()->getSitesIdWithAdminAccess();
     $idSiteSelected = 1;
     if (count($IdSitesAdmin) > 0) {
         $defaultWebsiteId = $IdSitesAdmin[0];
         $idSiteSelected = Common::getRequestVar('idSite', $defaultWebsiteId);
     }
     if ($idSiteSelected === 'all') {
         $usersAccessByWebsite = array();
         $defaultReportSiteName = Piwik::translate('UsersManager_ApplyToAllWebsites');
     } else {
         $usersAccessByWebsite = APIUsersManager::getInstance()->getUsersAccessFromSite($idSiteSelected);
         $defaultReportSiteName = Site::getNameFor($idSiteSelected);
     }
     // we dont want to display the user currently logged so that the user can't change his settings from admin to view...
     $currentlyLogged = Piwik::getCurrentUserLogin();
     $usersLogin = APIUsersManager::getInstance()->getUsersLogin();
     foreach ($usersLogin as $login) {
         if (!isset($usersAccessByWebsite[$login])) {
             $usersAccessByWebsite[$login] = 'noaccess';
         }
     }
     unset($usersAccessByWebsite[$currentlyLogged]);
     // $usersAccessByWebsite is not supposed to contain unexistant logins, but it does when upgrading from some old Piwik version
     foreach ($usersAccessByWebsite as $login => $access) {
         if (!in_array($login, $usersLogin)) {
             unset($usersAccessByWebsite[$login]);
             continue;
         }
     }
     ksort($usersAccessByWebsite);
     $users = array();
     $usersAliasByLogin = array();
     if (Piwik::isUserHasSomeAdminAccess()) {
         $users = APIUsersManager::getInstance()->getUsers();
         foreach ($users as $user) {
             $usersAliasByLogin[$user['login']] = $user['alias'];
         }
     }
     $view->anonymousHasViewAccess = $this->hasAnonymousUserViewAccess($usersAccessByWebsite);
     $view->idSiteSelected = $idSiteSelected;
     $view->defaultReportSiteName = $defaultReportSiteName;
     $view->users = $users;
     $view->usersAliasByLogin = $usersAliasByLogin;
     $view->usersCount = count($users) - 1;
     $view->usersAccessByWebsite = $usersAccessByWebsite;
     $websites = APISitesManager::getInstance()->getSitesWithAdminAccess();
     uasort($websites, array('Piwik\\Plugins\\UsersManager\\Controller', 'orderByName'));
     $view->websites = $websites;
     $this->setBasicVariablesView($view);
     return $view->render();
 }
Пример #10
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $type = $this->getFirstTypeIfOnlyOneIsInUse();
         $menuName = 'General_Measurables';
         if ($type) {
             $menuName = $type->getNamePlural();
         }
         $menu->addManageItem($menuName, $this->urlForAction('index'), $order = 1);
     }
 }
Пример #11
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addSystemItem('UsersManager_MenuUsers', $this->urlForAction('index'), $order = 15);
     }
     if (Piwik::hasUserSuperUserAccess() && API::getInstance()->getSitesAccessFromUser('anonymous')) {
         $menu->addSystemItem('UsersManager_AnonymousUser', $this->urlForAction('anonymousSettings'), $order = 16);
     }
     if (!Piwik::isUserIsAnonymous()) {
         $menu->addItem('UsersManager_MenuPersonal', 'General_Settings', $this->urlForAction('userSettings'), 0);
     }
 }
Пример #12
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::hasUserSuperUserAccess()) {
         $menu->addMeasurableItem('General_Settings', $this->urlForAction('globalSettings'), $order = 11);
     }
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addMeasurableItem('SitesManager_MenuManage', $this->urlForAction('index'), $order = 10);
         $type = $this->getFirstTypeIfOnlyOneIsInUse();
         if ($type) {
             $menu->rename('CoreAdminHome_MenuMeasurables', $subMenuOriginal = null, $type->getNamePlural(), $subMenuRenamed = null);
         }
     }
 }
Пример #13
0
 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);
     }
 }
Пример #14
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     $menu->registerMenuIcon('CoreAdminHome_MenuDevelopment', 'icon-admin-development');
     $menu->registerMenuIcon('CoreAdminHome_MenuDiagnostic', 'icon-admin-diagnostic');
     $menu->registerMenuIcon('CorePluginsAdmin_MenuPlatform', 'icon-admin-platform');
     $menu->registerMenuIcon('General_Settings', 'icon-admin-settings');
     $menu->registerMenuIcon('CoreAdminHome_Administration', 'icon-settings');
     $menu->registerMenuIcon('UsersManager_MenuPersonal', 'icon-user-personal');
     $menu->registerMenuIcon('CoreAdminHome_MenuSystem', 'icon-server');
     $menu->registerMenuIcon('CorePluginsAdmin_MenuPlatform', 'icon-user-platform');
     $manageMeasurablesIcon = 'icon-open-source';
     $menu->registerMenuIcon('CoreAdminHome_MenuMeasurables', $manageMeasurablesIcon);
     $menu->registerMenuIcon('SitesManager_Sites', $manageMeasurablesIcon);
     $menu->registerMenuIcon('MobileAppMeasurable_MobileApps', $manageMeasurablesIcon);
     if (Development::isEnabled() && Piwik::isUserHasSomeAdminAccess()) {
         $menu->addDevelopmentItem('UI Demo', $this->urlForAction('demo'));
     }
 }
Пример #15
0
 private static function notifyAnyInvalidLicense()
 {
     if (!Marketplace::isMarketplaceEnabled()) {
         return;
     }
     if (Piwik::isUserIsAnonymous()) {
         return;
     }
     if (!Piwik::isUserHasSomeAdminAccess()) {
         return;
     }
     $expired = StaticContainer::get('Piwik\\Plugins\\Marketplace\\Plugins\\InvalidLicenses');
     $messageLicenseMissing = $expired->getMessageNoLicense();
     if (!empty($messageLicenseMissing)) {
         $notification = new Notification($messageLicenseMissing);
         $notification->raw = true;
         $notification->context = Notification::CONTEXT_ERROR;
         $notification->title = Piwik::translate('Marketplace_LicenseMissing');
         Notification\Manager::notify('ControllerAdmin_LicenseMissingWarning', $notification);
     }
     $messageExceeded = $expired->getMessageExceededLicenses();
     if (!empty($messageExceeded)) {
         $notification = new Notification($messageExceeded);
         $notification->raw = true;
         $notification->context = Notification::CONTEXT_WARNING;
         $notification->title = Piwik::translate('Marketplace_LicenseExceeded');
         Notification\Manager::notify('ControllerAdmin_LicenseExceededWarning', $notification);
     }
     $messageExpired = $expired->getMessageExpiredLicenses();
     if (!empty($messageExpired)) {
         $notification = new Notification($messageExpired);
         $notification->raw = true;
         $notification->context = Notification::CONTEXT_WARNING;
         $notification->title = Piwik::translate('Marketplace_LicenseExpired');
         Notification\Manager::notify('ControllerAdmin_LicenseExpiredWarning', $notification);
     }
 }
Пример #16
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addSettingsItem('PrivacyManager_MenuPrivacySettings', $this->urlForAction('privacySettings'), $order = 7);
     }
 }
Пример #17
0
 /**
  * Assigns a set of generally useful variables to a {@link Piwik\View} instance.
  * 
  * The following variables assigned:
  * 
  * **enableMeasurePiwikForSiteId** - The value of the `[Debug] enable_measure_piwik_usage_in_idsite`
  *                                     INI config option.
  * **isSuperUser** - True if the current user is the Super User, false if otherwise.
  * **hasSomeAdminAccess** - True if the current user has admin access to at least one site,
  *                          false if otherwise.
  * **isCustomLogo** - The value of the `branding_use_custom_logo` option.
  * **logoHeader** - The header logo URL to use.
  * **logoLarge** - The large logo URL to use.
  * **logoSVG** - The SVG logo URL to use.
  * **hasSVGLogo** - True if there is a SVG logo, false if otherwise.
  * **enableFrames** - The value of the `[General] enable_framed_pages` INI config option. If
  *                    true, {@link Piwik\View::setXFrameOptions()} is called on the view.
  * 
  * Also calls {@link setHostValidationVariablesView()}.
  *
  * @param View $view
  * @api
  */
 protected function setBasicVariablesView($view)
 {
     $view->clientSideConfig = PiwikConfig::getInstance()->getClientSideOptions();
     $view->enableMeasurePiwikForSiteId = PiwikConfig::getInstance()->Debug['enable_measure_piwik_usage_in_idsite'];
     $view->isSuperUser = Access::getInstance()->hasSuperUserAccess();
     $view->hasSomeAdminAccess = Piwik::isUserHasSomeAdminAccess();
     $view->hasSomeViewAccess = Piwik::isUserHasSomeViewAccess();
     $view->isUserIsAnonymous = Piwik::isUserIsAnonymous();
     $view->hasSuperUserAccess = Piwik::hasUserSuperUserAccess();
     $this->addCustomLogoInfo($view);
     $view->logoHeader = \Piwik\Plugins\API\API::getInstance()->getHeaderLogoUrl();
     $view->logoLarge = \Piwik\Plugins\API\API::getInstance()->getLogoUrl();
     $view->logoSVG = \Piwik\Plugins\API\API::getInstance()->getSVGLogoUrl();
     $view->hasSVGLogo = \Piwik\Plugins\API\API::getInstance()->hasSVGLogo();
     $view->superUserEmails = implode(',', Piwik::getAllSuperUserAccessEmailAddresses());
     $general = PiwikConfig::getInstance()->General;
     $view->enableFrames = $general['enable_framed_pages'] || isset($general['enable_framed_logins']) && $general['enable_framed_logins'];
     if (!$view->enableFrames) {
         $view->setXFrameOptions('sameorigin');
     }
     self::setHostValidationVariablesView($view);
 }
Пример #18
0
 /**
  * The "Manage Users and Permissions" Admin UI screen
  */
 function index()
 {
     Piwik::checkUserIsNotAnonymous();
     $view = new View('@UsersManager/index');
     $IdSitesAdmin = APISitesManager::getInstance()->getSitesIdWithAdminAccess();
     $idSiteSelected = 1;
     if (count($IdSitesAdmin) > 0) {
         $defaultWebsiteId = $IdSitesAdmin[0];
         $idSiteSelected = Common::getRequestVar('idSite', $defaultWebsiteId);
     }
     if ($idSiteSelected === 'all') {
         $usersAccessByWebsite = array();
         $defaultReportSiteName = $this->translator->translate('UsersManager_ApplyToAllWebsites');
     } else {
         $defaultReportSiteName = Site::getNameFor($idSiteSelected);
         try {
             $usersAccessByWebsite = Request::processRequest('UsersManager.getUsersAccessFromSite', array('idSite' => $idSiteSelected));
         } catch (NoAccessException $e) {
             return $this->noAdminAccessToWebsite($idSiteSelected, $defaultReportSiteName, $e->getMessage());
         }
     }
     // we dont want to display the user currently logged so that the user can't change his settings from admin to view...
     $currentlyLogged = Piwik::getCurrentUserLogin();
     $usersLogin = APIUsersManager::getInstance()->getUsersLogin();
     foreach ($usersLogin as $login) {
         if (!isset($usersAccessByWebsite[$login])) {
             $usersAccessByWebsite[$login] = 'noaccess';
         }
     }
     unset($usersAccessByWebsite[$currentlyLogged]);
     // $usersAccessByWebsite is not supposed to contain unexistant logins, but it does when upgrading from some old Piwik version
     foreach ($usersAccessByWebsite as $login => $access) {
         if (!in_array($login, $usersLogin)) {
             unset($usersAccessByWebsite[$login]);
             continue;
         }
     }
     ksort($usersAccessByWebsite);
     $users = array();
     $superUsers = array();
     $usersAliasByLogin = array();
     $formatter = new Formatter();
     if (Piwik::isUserHasSomeAdminAccess()) {
         $view->showLastSeen = true;
         $users = APIUsersManager::getInstance()->getUsers();
         foreach ($users as $index => $user) {
             $usersAliasByLogin[$user['login']] = $user['alias'];
             $lastSeen = LastSeenTimeLogger::getLastSeenTimeForUser($user['login']);
             $users[$index]['last_seen'] = $lastSeen == 0 ? false : $formatter->getPrettyTimeFromSeconds(time() - $lastSeen);
         }
         if (Piwik::hasUserSuperUserAccess()) {
             foreach ($users as $user) {
                 if ($user['superuser_access']) {
                     $superUsers[] = $user['login'];
                 }
             }
         }
     }
     $view->anonymousHasViewAccess = $this->hasAnonymousUserViewAccess($usersAccessByWebsite);
     $view->idSiteSelected = $idSiteSelected;
     $view->defaultReportSiteName = $defaultReportSiteName;
     $view->users = $users;
     $view->superUserLogins = $superUsers;
     $view->usersAliasByLogin = $usersAliasByLogin;
     $view->usersCount = count($users) - 1;
     $view->usersAccessByWebsite = $usersAccessByWebsite;
     $websites = APISitesManager::getInstance()->getSitesWithAdminAccess();
     uasort($websites, array('Piwik\\Plugins\\UsersManager\\Controller', 'orderByName'));
     $view->websites = $websites;
     $this->setBasicVariablesView($view);
     return $view->render();
 }
Пример #19
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     $menu->add('CoreAdminHome_MenuDiagnostic', 'DevicesDetection_DeviceDetection', array('module' => 'DevicesDetection', 'action' => 'deviceDetection'), Piwik::isUserHasSomeAdminAccess(), $order = 40);
 }
Пример #20
0
 /**
  * Renders the current view. Also sends the stored 'Content-Type' HTML header.
  * See {@link setContentType()}.
  *
  * @return string Generated template.
  */
 public function render()
 {
     try {
         $this->currentModule = Piwik::getModule();
         $this->currentAction = Piwik::getAction();
         $this->url = Common::sanitizeInputValue(Url::getCurrentUrl());
         $this->token_auth = Piwik::getCurrentUserTokenAuth();
         $this->userHasSomeAdminAccess = Piwik::isUserHasSomeAdminAccess();
         $this->userIsAnonymous = Piwik::isUserIsAnonymous();
         $this->userIsSuperUser = Piwik::hasUserSuperUserAccess();
         $this->latest_version_available = UpdateCheck::isNewestVersionAvailable();
         $this->disableLink = Common::getRequestVar('disableLink', 0, 'int');
         $this->isWidget = Common::getRequestVar('widget', 0, 'int');
         $piwikAds = StaticContainer::get('Piwik\\ProfessionalServices\\Advertising');
         $this->areAdsForProfessionalServicesEnabled = $piwikAds->areAdsForProfessionalServicesEnabled();
         if (Development::isEnabled()) {
             $cacheBuster = rand(0, 10000);
         } else {
             $cacheBuster = UIAssetCacheBuster::getInstance()->piwikVersionBasedCacheBuster();
         }
         $this->cacheBuster = $cacheBuster;
         $this->loginModule = Piwik::getLoginPluginName();
         $user = APIUsersManager::getInstance()->getUser($this->userLogin);
         $this->userAlias = $user['alias'];
     } catch (Exception $e) {
         Log::debug($e);
         // can fail, for example at installation (no plugin loaded yet)
     }
     ProxyHttp::overrideCacheControlHeaders('no-store');
     Common::sendHeader('Content-Type: ' . $this->contentType);
     // always sending this header, sometimes empty, to ensure that Dashboard embed loads
     // - when calling sendHeader() multiple times, the last one prevails
     Common::sendHeader('X-Frame-Options: ' . (string) $this->xFrameOptions);
     return $this->renderTwigTemplate();
 }
Пример #21
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     $menu->add('CoreAdminHome_MenuManage', 'SitesManager_Sites', array('module' => 'SitesManager', 'action' => 'index'), Piwik::isUserHasSomeAdminAccess(), $order = 1);
 }
Пример #22
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addSettingsItem('Custom OptOut', $this->urlForDefaultAction());
     }
 }
Пример #23
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addSettingsItem('PrivacyManager_MenuPrivacySettings', array('module' => 'PrivacyManager', 'action' => 'privacySettings'), $order = 7);
     }
 }
Пример #24
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addManageItem('SitesManager_Sites', array('module' => 'SitesManager', 'action' => 'index'), $order = 1);
     }
 }
Пример #25
0
 public function overview()
 {
     $view = $this->configureViewAndCheckPermission('@Marketplace/overview');
     $show = Common::getRequestVar('show', 'plugins', 'string');
     $query = Common::getRequestVar('query', '', 'string', $_POST);
     $sort = new Sort();
     $sort = $sort->getSort();
     $mode = new Mode();
     $mode = $mode->getMode();
     // we're fetching all available plugins to decide which tabs need to be shown in the UI and to know the number
     // of total available plugins
     $allPlugins = $this->plugins->getAllPlugins();
     $allThemes = $this->plugins->getAllThemes();
     $paidPlugins = $this->plugins->getAllPaidPlugins();
     $showThemes = $show === 'themes';
     $showPlugins = !$showThemes;
     $showPaid = $show === 'premium';
     $showAll = !$showPaid;
     if ($showPlugins && $showPaid) {
         $type = PurchaseType::TYPE_PAID;
         $view->numAvailablePlugins = count($paidPlugins);
     } elseif ($showPlugins && $showAll) {
         $type = PurchaseType::TYPE_ALL;
         $view->numAvailablePlugins = count($allPlugins);
     } else {
         $type = PurchaseType::TYPE_ALL;
         $view->numAvailablePlugins = count($allThemes);
     }
     $pluginsToShow = $this->plugins->searchPlugins($query, $sort, $showThemes, $type);
     $paidPluginsToInstallAtOnce = array();
     if (SettingsPiwik::isAutoUpdatePossible()) {
         foreach ($paidPlugins as $paidPlugin) {
             if ($this->canPluginBeInstalled($paidPlugin) || $this->pluginManager->isPluginInstalled($paidPlugin['name']) && !$this->pluginManager->isPluginActivated($paidPlugin['name'])) {
                 $paidPluginsToInstallAtOnce[] = $paidPlugin['name'];
             }
         }
     }
     $view->paidPluginsToInstallAtOnce = $paidPluginsToInstallAtOnce;
     $view->pluginsToShow = $pluginsToShow;
     $view->isValidConsumer = $this->consumer->isValidConsumer();
     $view->paidPlugins = $paidPlugins;
     $view->freePlugins = $allPlugins;
     $view->themes = $allThemes;
     $view->showThemes = $showThemes;
     $view->showPlugins = $showPlugins;
     $view->showFree = $showAll;
     $view->showPaid = $showPaid;
     $view->pluginType = $show;
     $view->pluginTypeOptions = array('plugins' => Piwik::translate('General_Plugins'), 'premium' => Piwik::translate('Marketplace_PaidPlugins'), 'themes' => Piwik::translate('CorePluginsAdmin_Themes'));
     $view->pluginSortOptions = array(Sort::METHOD_LAST_UPDATED => Piwik::translate('Marketplace_SortByLastUpdated'), Sort::METHOD_POPULAR => Piwik::translate('Marketplace_SortByPopular'), Sort::METHOD_NEWEST => Piwik::translate('Marketplace_SortByNewest'), Sort::METHOD_ALPHA => Piwik::translate('Marketplace_SortByAlpha'));
     $view->mode = $mode;
     $view->query = $query;
     $view->sort = $sort;
     $view->hasLicenseKey = $this->licenseKey->has();
     $view->hasSomeAdminAccess = Piwik::isUserHasSomeAdminAccess();
     $view->installNonce = Nonce::getNonce(static::INSTALL_NONCE);
     $view->updateNonce = Nonce::getNonce(static::UPDATE_NONCE);
     $view->deactivateNonce = Nonce::getNonce(PluginsController::DEACTIVATE_NONCE);
     $view->activateNonce = Nonce::getNonce(PluginsController::ACTIVATE_NONCE);
     $view->isSuperUser = Piwik::hasUserSuperUserAccess();
     $view->isPluginsAdminEnabled = CorePluginsAdmin::isPluginsAdminEnabled();
     $view->isAutoUpdatePossible = SettingsPiwik::isAutoUpdatePossible();
     $view->isAutoUpdateEnabled = SettingsPiwik::isAutoUpdateEnabled();
     return $view->render();
 }
Пример #26
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUsers', array('module' => 'UsersManager', 'action' => 'index'), Piwik::isUserHasSomeAdminAccess(), $order = 2);
     $menu->add('CoreAdminHome_MenuManage', 'UsersManager_MenuUserSettings', array('module' => 'UsersManager', 'action' => 'userSettings'), Piwik::isUserHasSomeViewAccess(), $order = 3);
 }
Пример #27
0
 /**
  * Constructor.
  *
  * @param string $name The persisted name of the setting.
  * @param string $title The display name of the setting.
  */
 public function __construct($name, $title)
 {
     parent::__construct($name, $title);
     $this->writableByCurrentUser = Piwik::isUserHasSomeAdminAccess();
     $this->readableByCurrentUser = Piwik::isUserHasSomeViewAccess();
 }
Пример #28
0
 public function configureAdminMenu(MenuAdmin $menu)
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         $menu->addDiagnosticItem('DevicesDetection_DeviceDetection', $this->urlForAction('detection'), $order = 40);
     }
 }
Пример #29
0
 public function addConfigMenu()
 {
     if (Piwik::isUserHasSomeAdminAccess()) {
         MenuAdmin::getInstance()->addItem('General_Settings', 'IP2Location', array('module' => 'IP2Location', 'action' => 'index'), $order = 9);
     }
 }
Пример #30
0
 /**
  * Renders the current view. Also sends the stored 'Content-Type' HTML header.
  * See {@link setContentType()}.
  *
  * @return string Generated template.
  */
 public function render()
 {
     try {
         $this->currentModule = Piwik::getModule();
         $this->currentAction = Piwik::getAction();
         $this->url = Common::sanitizeInputValue(Url::getCurrentUrl());
         $this->token_auth = Piwik::getCurrentUserTokenAuth();
         $this->userHasSomeAdminAccess = Piwik::isUserHasSomeAdminAccess();
         $this->userIsSuperUser = Piwik::hasUserSuperUserAccess();
         $this->latest_version_available = UpdateCheck::isNewestVersionAvailable();
         $this->disableLink = Common::getRequestVar('disableLink', 0, 'int');
         $this->isWidget = Common::getRequestVar('widget', 0, 'int');
         $this->cacheBuster = UIAssetCacheBuster::getInstance()->piwikVersionBasedCacheBuster();
         $this->loginModule = Piwik::getLoginPluginName();
         $user = APIUsersManager::getInstance()->getUser($this->userLogin);
         $this->userAlias = $user['alias'];
     } catch (Exception $e) {
         // can fail, for example at installation (no plugin loaded yet)
     }
     try {
         $this->totalTimeGeneration = Registry::get('timer')->getTime();
         $this->totalNumberOfQueries = Profiler::getQueryCount();
     } catch (Exception $e) {
         $this->totalNumberOfQueries = 0;
     }
     ProxyHttp::overrideCacheControlHeaders('no-store');
     @header('Content-Type: ' . $this->contentType);
     // always sending this header, sometimes empty, to ensure that Dashboard embed loads (which could call this header() multiple times, the last one will prevail)
     @header('X-Frame-Options: ' . (string) $this->xFrameOptions);
     return $this->renderTwigTemplate();
 }