You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/10/04 03:22:29 UTC

[openmeetings] branch master updated: [OPENMEETINGS-2472] more work on csp, code clean-up

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 90cad09  [OPENMEETINGS-2472] more work on csp, code clean-up
90cad09 is described below

commit 90cad09a90836c525c78dd52fd6f753644906ca5
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Oct 4 10:22:13 2020 +0700

    [OPENMEETINGS-2472] more work on csp, code clean-up
---
 .../apache/openmeetings/db/dao/basic/ConfigurationDao.java   |  1 +
 .../java/org/apache/openmeetings/web/pages/BasePage.java     |  2 +-
 .../src/main/java/org/apache/openmeetings/web/pages/om-ga.js | 12 +++++-------
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 16c8537..273ce5f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -632,6 +632,7 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 			if (!Strings.isEmpty(getGaCode())) {
 				// https://developers.google.com/tag-manager/web/csp#universal_analytics_google_analytics
 				addCspRule(cspConfig, CSPDirective.IMG_SRC, "https://www.google-analytics.com");
+				addCspRule(cspConfig, CSPDirective.CONNECT_SRC, "https://www.google-analytics.com");
 				addCspRule(cspConfig, CSPDirective.SCRIPT_SRC, "https://www.googletagmanager.com");
 			}
 			oauthDao.getActive().forEach(oauth -> {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
index 97f6879..dbb1010 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
@@ -141,7 +141,7 @@ public abstract class BasePage extends AsyncUrlFragmentAwarePage {
 				}
 			})));
 			StringBuilder script = new StringBuilder("initGA('");
-			script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "init()").append(';');
+			script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "gtagEvent()").append(';');
 			response.render(OnDomReadyHeaderItem.forScript(script));
 		}
 		response.render(CssHeaderItem.forReference(FontAwesome5CssReference.instance()));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
index 65b4cb3..b3d6f99 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
@@ -3,18 +3,16 @@ window.dataLayer = window.dataLayer || [];
 function gtag() {
 	dataLayer.push(arguments);
 }
+function gtagEvent() {
+	gtag('event', 'pageview', {page: location.pathname, hash: location.hash});
+}
 function initGA(code) {
 	gtag('js', new Date());
 
 	gtag('config', code);
 }
-function init() {
-	gtag('event', 'pageview');
-}
 function initHash() {
-	gtag('event', 'pageview', window.location.hash);
+	gtagEvent();
 
-	$(window).bind('hashchange', function() {
-		gtag('event', 'pageview', window.location.hash);
-	});
+	$(window).off('hashchange').on('hashchange', gtagEvent);
 }