Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add token_auth to overlay requests where necessary #17851

Merged
merged 15 commits into from Aug 13, 2021
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion misc/log-analytics
Submodule log-analytics updated 1 files
+1 −1 README.md
1 change: 1 addition & 0 deletions plugins/Annotations/javascripts/annotations.js
Expand Up @@ -112,6 +112,7 @@

var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams(ajaxParams, 'get');
ajaxRequest.withTokenInUrl();
ajaxRequest.setFormat('html');
ajaxRequest.setCallback(callback);
ajaxRequest.send();
Expand Down
2 changes: 1 addition & 1 deletion plugins/CoreHome/angularjs/common/services/piwik-api.js
Expand Up @@ -338,7 +338,7 @@ var hasBlockedContent = false;
}

return {
withTokenInUrl: withTokenInUrl,
withTokenInUrl: withTokenInUrl, // technically should probably be called withTokenInPost
bulkFetch: bulkFetch,
post: post,
fetch: fetch,
Expand Down
Expand Up @@ -113,9 +113,7 @@
url += '&showtitle=1';
}

if (piwik.shouldPropagateTokenAuth && broadcast.getValueFromUrl('token_auth')) {
url += '&force_api_session=1&token_auth=' + broadcast.getValueFromUrl('token_auth');
}
url = piwik.broadcast.addTokenOrForceApiTo(url);

url += '&random=' + parseInt(Math.random() * 10000);

Expand Down
17 changes: 17 additions & 0 deletions plugins/CoreHome/javascripts/broadcast.js
Expand Up @@ -177,6 +177,23 @@ var broadcast = {
}
},

/**
* add token or force_api_session=1 to url if required for a GET request
* @param url the GET request, must be GET as we want to avoid adding
* this if possible for security reasons
* @returns {*} augmented url
*/
addTokenOrForceApiTo: function(url) {
var token_auth = this.getValueFromUrl("token_auth");
if (token_auth.length) { // this is required because the date range does not work otherwise
url += '&token_auth=' + encodeURIComponent(token_auth);
if (!piwik.broadcast.isWidgetizeRequestWithoutSession()) {
url += '&force_api_session=1';
}
}
return url;
},

isWidgetizedDashboard: function() {
return broadcast.getValueFromUrl('module') == 'Widgetize' && broadcast.getValueFromUrl('moduleToWidgetize') == 'Dashboard';
},
Expand Down
1 change: 1 addition & 0 deletions plugins/CoreHome/javascripts/dataTable_rowactions.js
Expand Up @@ -474,6 +474,7 @@ DataTable_RowActions_RowEvolution.prototype.showRowEvolution = function (apiMeth

var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams(requestParams, 'get');
ajaxRequest.withTokenInUrl();
ajaxRequest.setCallback(callback);
ajaxRequest.setFormat('html');
ajaxRequest.send();
Expand Down
1 change: 1 addition & 0 deletions plugins/Live/javascripts/SegmentedVisitorLog.js
Expand Up @@ -135,6 +135,7 @@ var SegmentedVisitorLog = function() {

var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams(requestParams, 'get');
ajaxRequest.withTokenInUrl();
ajaxRequest.setCallback(callback);
ajaxRequest.setFormat('html');
ajaxRequest.send();
Expand Down
5 changes: 3 additions & 2 deletions plugins/Live/javascripts/visitorProfile.js
Expand Up @@ -155,8 +155,9 @@
// append token_auth dynamically to export link
$element.on('mousedown', '.visitor-profile-export', function (e) {
var url = $(this).attr('href');
if (url.indexOf('&token_auth=') == -1) {
$(this).attr('href', url + '&force_api_session=1&token_auth=' + piwik.token_auth);
var augmentedUrl = piwik.broadcast.addTokenOrForceApiTo(url);
geekdenz marked this conversation as resolved.
Show resolved Hide resolved
if (augmentedUrl !== url) {
$(this).attr('href', augmentedUrl);
}
});

Expand Down
2 changes: 1 addition & 1 deletion plugins/Morpheus/icons
Submodule icons updated 97 files
+ dist/SEO/google.com.png
+ dist/brand/Google.png
+ dist/brand/LG.png
+ dist/brand/Xiaomi.png
+ dist/browsers/EC.png
+ dist/browsers/LG.png
+ dist/browsers/QM.png
+ dist/os/AND.png
+ dist/os/FED.png
+ dist/os/IOS.png
+ dist/os/IPA.png
+ dist/os/RHT.png
+ dist/os/WAS.png
+ dist/searchEngines/blogsearch.google.com.png
+ dist/searchEngines/ecosia.org.png
+ dist/searchEngines/friendfeed.com.png
+ dist/searchEngines/google.com.png
+ dist/searchEngines/googlesyndicatedsearch.com.png
+ dist/searchEngines/images.google.com.png
+ dist/searchEngines/maps.google.com.png
+ dist/searchEngines/news.google.com.png
+ dist/searchEngines/search.brave.com.png
+ dist/searchEngines/search.frontier.com.png
+ dist/searchEngines/video.google.com.png
+ dist/searchEngines/www.alltheinternet.com.png
+ dist/searchEngines/www.facebook.com.png
+ dist/searchEngines/www.mojeek.com.png
+ dist/searchEngines/www.qwant.com.png
+ dist/socials/facebook.com.png
+ dist/socials/web.telegram.org.png
+ dist/socials/xing.com.png
+ dist/socials/youtube.com.png
+0 −31 package-lock.json
+1 −1 src/brand/Google.svg
+0 −3 src/brand/Google.svg.source
+ src/brand/LG.jpg
+1 −0 src/brand/LG.jpg.source
+0 −40 src/brand/LG.svg
+0 −1 src/brand/LG.svg.source
+ src/brand/Xiaomi.png
+1 −0 src/brand/Xiaomi.png.source
+0 −12 src/brand/Xiaomi.svg
+0 −1 src/brand/Xiaomi.svg.source
+1 −0 src/browsers/LG.jpg
+1 −0 src/browsers/LG.jpg.source
+0 −1 src/browsers/LG.svg
+0 −1 src/browsers/LG.svg.source
+1 −0 src/browsers/QM.png
+1 −0 src/browsers/QM.png.source
+0 −1 src/browsers/QM.svg
+0 −1 src/browsers/QM.svg.source
+ src/os/AND.png
+2 −0 src/os/AND.png.source
+0 −1 src/os/AND.svg
+0 −1 src/os/AND.svg.source
+ src/os/FED.png
+1 −0 src/os/FED.png.source
+0 −33 src/os/FED.svg
+0 −2 src/os/FED.svg.source
+ src/os/IOS.png
+1 −0 src/os/IOS.png.source
+0 −2 src/os/IOS.svg
+0 −1 src/os/IOS.svg.source
+0 −13 src/os/IPA.svg
+0 −1 src/os/IPA.svg.source
+ src/os/RHT.png
+1 −0 src/os/RHT.png.source
+0 −34 src/os/RHT.svg
+0 −2 src/os/RHT.svg.source
+0 −26 src/os/WAS.svg
+0 −1 src/os/WAS.svg.source
+ src/searchEngines/ecosia.org.png
+12 −51 src/searchEngines/maps.google.com.svg
+1 −2 src/searchEngines/maps.google.com.svg.source
+166 −26 src/searchEngines/news.google.com.svg
+1 −1 src/searchEngines/news.google.com.svg.source
+0 −1 src/searchEngines/search.brave.com.png
+ src/searchEngines/search.frontier.com.ico
+0 −1 src/searchEngines/search.frontier.com.ico.source
+ src/searchEngines/www.alltheinternet.com.png
+0 −1 src/searchEngines/www.alltheinternet.com.png.source
+ src/searchEngines/www.mojeek.com.ico
+0 −1 src/searchEngines/www.mojeek.com.ico.source
+ src/searchEngines/www.qwant.com.png
+1 −0 src/searchEngines/www.qwant.com.png.source
+0 −73 src/searchEngines/www.qwant.com.svg
+0 −1 src/searchEngines/www.qwant.com.svg.source
+13 −1 src/socials/facebook.com.svg
+1 −1 src/socials/facebook.com.svg.source
+17 −1 src/socials/web.telegram.org.svg
+1 −1 src/socials/web.telegram.org.svg.source
+ src/socials/xing.com.ico
+ src/socials/youtube.com.jpg
+2 −0 src/socials/youtube.com.jpg.source
+0 −7 src/socials/youtube.com.svg
+0 −1 src/socials/youtube.com.svg.source
+11 −0 yarn.lock
1 change: 1 addition & 0 deletions plugins/Overlay/Overlay.php
Expand Up @@ -28,6 +28,7 @@ function registerEvents()
*/
public function getJsFiles(&$jsFiles)
{
$jsFiles[] = "plugins/CoreHome/javascripts/broadcast.js";
$jsFiles[] = 'plugins/Overlay/javascripts/rowaction.js';
$jsFiles[] = 'plugins/Overlay/javascripts/Overlay_Helper.js';
}
Expand Down
5 changes: 1 addition & 4 deletions plugins/Overlay/javascripts/Overlay_Helper.js
Expand Up @@ -27,10 +27,7 @@ var Overlay_Helper = {
url += '&segment=' + encodeURIComponent(segment);
}

var token_auth = piwik.broadcast.getValueFromUrl("token_auth");
if (token_auth.length && piwik.shouldPropagateTokenAuth) {
url += '&force_api_session=1&token_auth=' + encodeURIComponent(token_auth);
}
url = piwik.broadcast.addTokenOrForceApiTo(url);

if (link) {
url += '#?l=' + Overlay_Helper.encodeFrameUrl(link);
Expand Down
1 change: 1 addition & 0 deletions plugins/Overlay/javascripts/Piwik_Overlay.js
Expand Up @@ -50,6 +50,7 @@ var Piwik_Overlay = (function () {
globalAjaxQueue.abort();
var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams(params, 'get');
ajaxRequest.withTokenInUrl(); // needed because it is calling a controller and not the API
ajaxRequest.setCallback(
function (response) {
hideLoading();
Expand Down
4 changes: 1 addition & 3 deletions plugins/Overlay/templates/index.twig
Expand Up @@ -72,9 +72,7 @@
Piwik_Overlay.siteUrls = {{ siteUrls|json_encode|raw }};

var iframeSrc = 'index.php?module=Overlay&action=startOverlaySession&idSite={{ idSite }}&period={{ period }}&date={{ rawDate }}&segment={{ segment }}';
if (piwik.shouldPropagateTokenAuth) {
iframeSrc += '&force_api_session=1&token_auth=' + piwik.token_auth;
}
iframeSrc = piwik.broadcast.addTokenOrForceApiTo(iframeSrc);

Piwik_Overlay.init(iframeSrc, '{{ idSite }}', '{{ period }}', '{{ rawDate }}', '{{ segment }}');

Expand Down
5 changes: 1 addition & 4 deletions plugins/Overlay/templates/index_noframe.twig
Expand Up @@ -6,10 +6,7 @@
<div id="overlayNoFrame">

<script type="text/javascript">
var newLocation = 'index.php?module=Overlay&action=startOverlaySession&idSite={{ idSite }}&period={{ period }}&date={{ date }}&segment={{ segment }}';
if (piwik.shouldPropagateTokenAuth) {
newLocation += '&force_api_session=1&token_auth=' + piwik.token_auth;
}
var newLocation = piwik.broadcast.addTokenOrForceApiTo('index.php?module=Overlay&action=startOverlaySession&idSite={{ idSite }}&period={{ period }}&date={{ date }}&segment={{ segment }}');

var locationParts = window.location.href.split('#');
if (locationParts.length > 1) {
Expand Down