diff options
author | Thomas Steur <tsteur@users.noreply.github.com> | 2018-09-24 01:06:50 +0300 |
---|---|---|
committer | diosmosis <diosmosis@users.noreply.github.com> | 2018-09-24 01:06:50 +0300 |
commit | af9f44ced0a8d2e703584eaaffc210f2a1a30187 (patch) | |
tree | fe82361c4afad9ea4847d2879851be2f579b1807 /plugins/Actions | |
parent | cf203be455df68192580bd7363886d5604abae80 (diff) |
Fix fatal when multiple sites are requested in referrers API report (#13439)
* Fix fatal when multiple sites are requested in referrers API report
* add more checks
Diffstat (limited to 'plugins/Actions')
-rw-r--r-- | plugins/Actions/API.php | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/Actions/API.php b/plugins/Actions/API.php index 2f23b98156..1b3cf888c5 100644 --- a/plugins/Actions/API.php +++ b/plugins/Actions/API.php @@ -91,6 +91,8 @@ class API extends \Piwik\Plugin\API public function getPageUrls($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $depth = false, $flat = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = Archive::createDataTableFromArchive('Actions_actions_url', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable, $depth); $this->filterActionsDataTable($dataTable); @@ -121,6 +123,8 @@ class API extends \Piwik\Plugin\API */ public function getPageUrlsFollowingSiteSearch($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageUrls($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->keepPagesFollowingSearch($dataTable); return $dataTable; @@ -138,6 +142,8 @@ class API extends \Piwik\Plugin\API */ public function getPageTitlesFollowingSiteSearch($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageTitles($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->keepPagesFollowingSearch($dataTable); return $dataTable; @@ -163,6 +169,8 @@ class API extends \Piwik\Plugin\API */ public function getEntryPageUrls($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageUrls($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->filterNonEntryActions($dataTable); return $dataTable; @@ -174,6 +182,8 @@ class API extends \Piwik\Plugin\API */ public function getExitPageUrls($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageUrls($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->filterNonExitActions($dataTable); return $dataTable; @@ -181,6 +191,8 @@ class API extends \Piwik\Plugin\API public function getPageUrl($pageUrl, $idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $callBackParameters = array('Actions_actions_url', $idSite, $period, $date, $segment, $expanded = false, $flat = false, $idSubtable = null); $dataTable = $this->getFilterPageDatatableSearch($callBackParameters, $pageUrl, Action::TYPE_PAGE_URL); $this->addPageProcessedMetrics($dataTable); @@ -190,6 +202,8 @@ class API extends \Piwik\Plugin\API public function getPageTitles($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $flat = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = Archive::createDataTableFromArchive('Actions_actions', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable); $this->filterActionsDataTable($dataTable); @@ -204,6 +218,8 @@ class API extends \Piwik\Plugin\API public function getEntryPageTitles($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageTitles($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->filterNonEntryActions($dataTable); return $dataTable; @@ -216,6 +232,8 @@ class API extends \Piwik\Plugin\API public function getExitPageTitles($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getPageTitles($idSite, $period, $date, $segment, $expanded, $idSubtable); $this->filterNonExitActions($dataTable); return $dataTable; @@ -223,6 +241,8 @@ class API extends \Piwik\Plugin\API public function getPageTitle($pageName, $idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $callBackParameters = array('Actions_actions', $idSite, $period, $date, $segment, $expanded = false, $flat = false, $idSubtable = null); $dataTable = $this->getFilterPageDatatableSearch($callBackParameters, $pageName, Action::TYPE_PAGE_TITLE); $this->addPageProcessedMetrics($dataTable); @@ -232,6 +252,8 @@ class API extends \Piwik\Plugin\API public function getDownloads($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $flat = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = Archive::createDataTableFromArchive('Actions_downloads', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable); $this->filterActionsDataTable($dataTable); return $dataTable; @@ -239,6 +261,8 @@ class API extends \Piwik\Plugin\API public function getDownload($downloadUrl, $idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $callBackParameters = array('Actions_downloads', $idSite, $period, $date, $segment, $expanded = false, $flat = false, $idSubtable = null); $dataTable = $this->getFilterPageDatatableSearch($callBackParameters, $downloadUrl, Action::TYPE_DOWNLOAD); $this->filterActionsDataTable($dataTable); @@ -247,6 +271,8 @@ class API extends \Piwik\Plugin\API public function getOutlinks($idSite, $period, $date, $segment = false, $expanded = false, $idSubtable = false, $flat = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = Archive::createDataTableFromArchive('Actions_outlink', $idSite, $period, $date, $segment, $expanded, $flat, $idSubtable); $this->filterActionsDataTable($dataTable); return $dataTable; @@ -254,6 +280,8 @@ class API extends \Piwik\Plugin\API public function getOutlink($outlinkUrl, $idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $callBackParameters = array('Actions_outlink', $idSite, $period, $date, $segment, $expanded = false, $flat = false, $idSubtable = null); $dataTable = $this->getFilterPageDatatableSearch($callBackParameters, $outlinkUrl, Action::TYPE_OUTLINK); $this->filterActionsDataTable($dataTable); @@ -262,6 +290,8 @@ class API extends \Piwik\Plugin\API public function getSiteSearchKeywords($idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getSiteSearchKeywordsRaw($idSite, $period, $date, $segment); $dataTable->deleteColumn(PiwikMetrics::INDEX_SITE_SEARCH_HAS_NO_RESULT); $this->filterActionsDataTable($dataTable); @@ -289,6 +319,8 @@ class API extends \Piwik\Plugin\API public function getSiteSearchNoResultKeywords($idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + $dataTable = $this->getSiteSearchKeywordsRaw($idSite, $period, $date, $segment); // Delete all rows that have some results $dataTable->filter('ColumnCallbackDeleteRow', @@ -316,6 +348,8 @@ class API extends \Piwik\Plugin\API */ public function getSiteSearchCategories($idSite, $period, $date, $segment = false) { + Piwik::checkUserHasViewAccess($idSite); + Actions::checkCustomVariablesPluginEnabled(); $customVariables = APICustomVariables::getInstance()->getCustomVariables($idSite, $period, $date, $segment, $expanded = false, $_leavePiwikCoreVariables = true); |