From 175733e61adc9bf88f46c86be374bcc4cc11e7ec Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 4 Apr 2018 08:50:02 +0200
Subject: [PATCH] OO-3414: hardened the event handling in share link

---
 .../olat/social/shareLink/ShareLinkController.java | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/social/shareLink/ShareLinkController.java b/src/main/java/org/olat/social/shareLink/ShareLinkController.java
index 950fc273e07..932a65587cf 100644
--- a/src/main/java/org/olat/social/shareLink/ShareLinkController.java
+++ b/src/main/java/org/olat/social/shareLink/ShareLinkController.java
@@ -23,7 +23,6 @@ package org.olat.social.shareLink;
 
 import java.util.List;
 
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.WindowManager;
 import org.olat.core.gui.components.Component;
@@ -40,6 +39,7 @@ import org.olat.core.util.StringHelper;
 import org.olat.core.util.UserSession;
 import org.olat.core.util.prefs.Preferences;
 import org.olat.social.SocialModule;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * <h3>Description:</h3>
@@ -59,10 +59,12 @@ import org.olat.social.SocialModule;
  * 
  * @author Florian Gnaegi, frentix GmbH, http://www.frentix.com
  */
-
 public class ShareLinkController extends BasicController {
 	private final VelocityContainer shareLinkVC;
 	
+	@Autowired
+	private SocialModule socialModule;
+	
 	/**
 	 * Standard constructor for the share link controller
 	 * @param ureq
@@ -75,7 +77,6 @@ public class ShareLinkController extends BasicController {
 		// Add the OpenOLAT base URL from the config
 		shareLinkVC.contextPut("baseURL", Settings.getServerContextPathURI());
 		// Load configured share link buttons from the SocialModule configuration
-		SocialModule socialModule = (SocialModule) CoreSpringFactory.getBean("socialModule");
 		shareLinkVC.contextPut("shareLinks", socialModule.getEnabledShareLinkButtons());
 		// Tell if user is logged in
 		UserSession usess = ureq.getUserSession();
@@ -85,8 +86,9 @@ public class ShareLinkController extends BasicController {
 
 	@Override
 	protected void event(UserRequest ureq, Component source, Event event) {
-		if (source == shareLinkVC && event.getCommand().equals("setLandingPage") && ureq.getUserSession().isAuthenticated()) {
-			HistoryPoint p = ureq.getUserSession().getLastHistoryPoint();
+		UserSession usess = ureq.getUserSession();
+		if (source == shareLinkVC && "setLandingPage".equals(event.getCommand()) && usess != null && usess.isAuthenticated()) {
+			HistoryPoint p = usess.getLastHistoryPoint();
 			if(p != null && StringHelper.containsNonWhitespace(p.getBusinessPath())) {
 				List<ContextEntry> ces = p.getEntries();
 				String landingPage = BusinessControlFactory.getInstance().getAsURIString(ces, true);
@@ -96,7 +98,7 @@ public class ShareLinkController extends BasicController {
 					landingPage = landingPage.substring(start + 4);
 				}
 				// update user prefs
-				Preferences prefs = ureq.getUserSession().getGuiPreferences();
+				Preferences prefs = usess.getGuiPreferences();
 				prefs.put(WindowManager.class, "landing-page", landingPage);				
 				prefs.save();
 				getWindowControl().getWindowBackOffice().sendCommandTo(new JSCommand("showInfoBox(\"" + translate("info.header") + "\",\"" + translate("landingpage.set.message") + "\");"));
-- 
GitLab