diff options
6 files changed, 40 insertions, 2 deletions
diff --git a/plugins/CoreHome/angularjs/common/services/piwik-api.js b/plugins/CoreHome/angularjs/common/services/piwik-api.js index ab546a7693..67f9756f4f 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 0115b73715..f3d5317b7b 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 4cc1ac823e..e93c7a82e7 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 0000000000..065744e5ba --- /dev/null +++ b/tests/UI/expected-screenshots/Dashboard_invalid_token_auth.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e8135200b8d1c3efb7f298e770f053970918284b9fc9cdc2196bd4f199a77f9 +size 33186 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 0000000000..6a923dff35 --- /dev/null +++ b/tests/UI/expected-screenshots/Dashboard_loaded_token_auth.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad27d14793efb8735da99c610041c7ad27df565ac18a8e993b4cf74bb0e40a40 +size 534693 diff --git a/tests/UI/specs/Dashboard_spec.js b/tests/UI/specs/Dashboard_spec.js index 0c4f28f080..f647bdab68 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); + }); + }); |