diff --git a/plugins/CoreHome/angularjs/common/services/piwik-api.js b/plugins/CoreHome/angularjs/common/services/piwik-api.js index ab546a7693acdb06efb70eb207a8ee879a7ce528..67f9756f4fd9f30dd440a5b1ab8618f187c11189 100644 --- a/plugins/CoreHome/angularjs/common/services/piwik-api.js +++ b/plugins/CoreHome/angularjs/common/services/piwik-api.js @@ -47,6 +47,10 @@ var hasBlockedContent = false; return getParams && getParams['module'] === 'API' && getParams['method']; } + function isWidgetizedRequest() { + return (broadcast.getValueFromUrl('module') == 'Widgetize'); + } + function reset () { getParams = {}; postParams = {}; @@ -176,7 +180,7 @@ var hasBlockedContent = false; * @private */ function getPostParams (params) { - if (isRequestToApiMethod()) { + if (isRequestToApiMethod() || isWidgetizedRequest()) { params.token_auth = piwik.token_auth; } diff --git a/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js b/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js index 0115b7371516e3998c227e0489352a7187b5c148..f3d5317b7b8634c14f843f83daaf59bf4cab47e2 100644 --- a/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js +++ b/plugins/CoreHome/angularjs/widget-loader/widgetloader.directive.js @@ -96,6 +96,10 @@ url += '&showtitle=1'; } + if (broadcast.getValueFromUrl('module') == 'Widgetize' && broadcast.getValueFromUrl('token_auth')) { + url += '&token_auth=' + broadcast.getValueFromUrl('token_auth'); + } + url += '&random=' + parseInt(Math.random() * 10000); return '?' + url; diff --git a/plugins/Morpheus/javascripts/ajaxHelper.js b/plugins/Morpheus/javascripts/ajaxHelper.js index 4cc1ac823e8e7b06c5d813c040d2d3dc433114fd..e93c7a82e7216faafd3b980c6e19acd0c858848f 100644 --- a/plugins/Morpheus/javascripts/ajaxHelper.js +++ b/plugins/Morpheus/javascripts/ajaxHelper.js @@ -481,8 +481,12 @@ function ajaxHelper() { (this.postParams && this.postParams['module'] === 'API' && this.postParams['method']); }; + this._isWidgetizedRequest = function () { + return (broadcast.getValueFromUrl('module') == 'Widgetize'); + }; + this._getDefaultPostParams = function () { - if (this.withToken || this._isRequestToApiMethod()) { + if (this.withToken || this._isRequestToApiMethod() || this._isWidgetizedRequest()) { return { token_auth: piwik.token_auth }; diff --git a/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png b/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png new file mode 100644 index 0000000000000000000000000000000000000000..065744e5ba962dbc389441ead75272220c00d65b Binary files /dev/null and b/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png differ diff --git a/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png b/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png new file mode 100644 index 0000000000000000000000000000000000000000..6a923dff35dbef9ad7a3d2af15c4a2e480e6e6e6 Binary files /dev/null and b/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png differ diff --git a/tests/UI/specs/Dashboard_spec.js b/tests/UI/specs/Dashboard_spec.js index 0c4f28f08030eb4e6f1a8ae7a37c018bf91f2158..f647bdab6868405da18204045349c11f6d0fd030 100644 --- a/tests/UI/specs/Dashboard_spec.js +++ b/tests/UI/specs/Dashboard_spec.js @@ -223,4 +223,24 @@ describe("Dashboard", function () { }, done); }); + it("should load correctly with token_auth", function (done) { + testEnvironment.testUseMockAuth = 0; + testEnvironment.save(); + + expect.screenshot("loaded_token_auth").to.be.capture(function (page) { + var tokenAuth = "9ad1de7f8b329ab919d854c556f860c1"; + page.load(url.replace("idDashboard=5", "idDashboard=1") + '&token_auth=' + tokenAuth, 5000); + }, done); + }); + + it("should fail to load with invalid token_auth", function (done) { + testEnvironment.testUseMockAuth = 0; + testEnvironment.save(); + + expect.screenshot("invalid_token_auth").to.be.capture(function (page) { + var tokenAuth = "anyInvalidToken"; + page.load(url.replace("idDashboard=5", "idDashboard=1") + '&token_auth=' + tokenAuth, 5000); + }, done); + }); + });