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 2016/08/28 15:01:01 UTC

svn commit: r1758123 - in /openmeetings/application: branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ trunk/openmeetings-core/src/mai...

Author: solomax
Date: Sun Aug 28 15:01:01 2016
New Revision: 1758123

URL: http://svn.apache.org/viewvc?rev=1758123&view=rev
Log:
[OPENMEETINGS-1045] screen-sharing seems to work

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java

Modified: openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1758123&r1=1758122&r2=1758123&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Sun Aug 28 15:01:01 2016
@@ -184,6 +184,7 @@ public class ScopeApplicationAdapter ext
 		Map<String, Object> connParams = getConnParams(params);
 		String uid = (String)connParams.get("uid");
 		String securityCode = (String)connParams.get(SECURITY_CODE_PARAM);
+		String parentSid = (String)map.get("parentSid");
 		if (!Strings.isEmpty(securityCode)) {
 			//FIXME TODO add better mechanism, this is for external applications like ffmpeg
 			Client parent = sessionManager.getClientByPublicSID(securityCode, null);
@@ -191,23 +192,27 @@ public class ScopeApplicationAdapter ext
 				return rejectClient();
 			}
 		}
-		if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode)) {
+		if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode) && Strings.isEmpty(parentSid)) {
 			return rejectClient();
 		}
 		if ("networktest".equals(uid)) {
 			return true;
 		}
 
+		Client rcm = new Client();
 		Client parentClient = null;
 		//TODO add similar code for other connections
 		if (map.containsKey("screenClient")) {
-			String parentSid = (String)map.get("parentSid");
 			parentClient = sessionManager.getClientByPublicSID(parentSid, null);
 			if (parentClient == null) {
 				return rejectClient();
 			}
+			SessionVariablesUtil.setIsScreenClient(conn.getClient());
+			rcm.setUserId(parentClient.getUserId());
+			rcm.setScreenClient(true);
+			rcm.setPublicSID(UUID.randomUUID().toString());
+			rcm.setStreamPublishName(parentSid);
 		}
-		Client rcm = new Client();
 		rcm.setStreamid(conn.getClient().getId());
 		StringValue scn = StringValue.valueOf(conn.getScope().getName());
 		rcm.setScope(scn.toString());
@@ -222,7 +227,9 @@ public class ScopeApplicationAdapter ext
 		rcm.setSwfurl(swfURL);
 		rcm.setTcUrl(tcUrl);
 		rcm.setNativeSsl(Boolean.TRUE.equals(connParams.get(NATIVE_SSL_PARAM)));
-		rcm.setPublicSID(uid);
+		if (!Strings.isEmpty(uid)) {
+			rcm.setPublicSID(uid);
+		}
 		rcm.setSecurityCode(securityCode);
 		rcm = sessionManager.add(((IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName)).updateClient(rcm), null);
 		if (rcm == null) {
@@ -234,17 +241,9 @@ public class ScopeApplicationAdapter ext
 		//TODO add similar code for other connections, merge with above block
 		if (map.containsKey("screenClient")) {
 			//TODO add check for room rights
-			String parentSid = parentClient.getPublicSID();
-			rcm.setRoomId(Long.valueOf(conn.getScope().getName()));
-			rcm.setScreenClient(true);
-			SessionVariablesUtil.setIsScreenClient(conn.getClient());
-			
-			rcm.setUserId(parentClient.getUserId());
+			User u = null;
 			Long userId = rcm.getUserId();
 			SessionVariablesUtil.setUserId(conn.getClient(), userId);
-
-			rcm.setStreamPublishName(parentSid);
-			User u = null;
 			if (userId != null) {
 				long _uid = userId.longValue();
 				u = userDao.get(_uid < 0 ? -_uid : _uid);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1758123&r1=1758122&r2=1758123&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Sun Aug 28 15:01:01 2016
@@ -227,15 +227,17 @@ public class Application extends Authent
 		if (rcl == null) {
 			return null;
 		}
-		Client client = getOnlineClient(rcl.getPublicSID());
-		if (client == null) {
-			return null;
+		if (!rcl.isScreenClient()) {
+			Client client = getOnlineClient(rcl.getPublicSID());
+			if (client == null) {
+				return null;
+			}
+			rcl.setIsSuperModerator(client.hasRight(Right.superModerator));
+			rcl.setIsMod(client.hasRight(Right.moderator));
+			rcl.setIsBroadcasting(client.hasRight(Right.audio));
+			rcl.setCanVideo(client.hasRight(Right.video));
+			rcl.setCanDraw(client.hasRight(Right.whiteBoard));
 		}
-		rcl.setIsSuperModerator(client.hasRight(Right.superModerator));
-		rcl.setIsMod(client.hasRight(Right.moderator));
-		rcl.setIsBroadcasting(client.hasRight(Right.audio));
-		rcl.setCanVideo(client.hasRight(Right.video));
-		rcl.setCanDraw(client.hasRight(Right.whiteBoard));
 		return rcl;
 	}
 	

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1758123&r1=1758122&r2=1758123&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java Sun Aug 28 15:01:01 2016
@@ -184,6 +184,7 @@ public class ScopeApplicationAdapter ext
 		Map<String, Object> connParams = getConnParams(params);
 		String uid = (String)connParams.get("uid");
 		String securityCode = (String)connParams.get(SECURITY_CODE_PARAM);
+		String parentSid = (String)map.get("parentSid");
 		if (!Strings.isEmpty(securityCode)) {
 			//FIXME TODO add better mechanism, this is for external applications like ffmpeg
 			Client parent = sessionManager.getClientByPublicSID(securityCode, null);
@@ -191,23 +192,27 @@ public class ScopeApplicationAdapter ext
 				return rejectClient();
 			}
 		}
-		if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode)) {
+		if (Strings.isEmpty(uid) && Strings.isEmpty(securityCode) && Strings.isEmpty(parentSid)) {
 			return rejectClient();
 		}
 		if ("networktest".equals(uid)) {
 			return true;
 		}
 
+		Client rcm = new Client();
 		Client parentClient = null;
 		//TODO add similar code for other connections
 		if (map.containsKey("screenClient")) {
-			String parentSid = (String)map.get("parentSid");
 			parentClient = sessionManager.getClientByPublicSID(parentSid, null);
 			if (parentClient == null) {
 				return rejectClient();
 			}
+			SessionVariablesUtil.setIsScreenClient(conn.getClient());
+			rcm.setUserId(parentClient.getUserId());
+			rcm.setScreenClient(true);
+			rcm.setPublicSID(UUID.randomUUID().toString());
+			rcm.setStreamPublishName(parentSid);
 		}
-		Client rcm = new Client();
 		rcm.setStreamid(conn.getClient().getId());
 		StringValue scn = StringValue.valueOf(conn.getScope().getName());
 		rcm.setScope(scn.toString());
@@ -222,7 +227,9 @@ public class ScopeApplicationAdapter ext
 		rcm.setSwfurl(swfURL);
 		rcm.setTcUrl(tcUrl);
 		rcm.setNativeSsl(Boolean.TRUE.equals(connParams.get(NATIVE_SSL_PARAM)));
-		rcm.setPublicSID(uid);
+		if (!Strings.isEmpty(uid)) {
+			rcm.setPublicSID(uid);
+		}
 		rcm.setSecurityCode(securityCode);
 		rcm = sessionManager.add(((IApplication)Application.get(OpenmeetingsVariables.wicketApplicationName)).updateClient(rcm), null);
 		if (rcm == null) {
@@ -234,17 +241,9 @@ public class ScopeApplicationAdapter ext
 		//TODO add similar code for other connections, merge with above block
 		if (map.containsKey("screenClient")) {
 			//TODO add check for room rights
-			String parentSid = parentClient.getPublicSID();
-			rcm.setRoomId(Long.valueOf(conn.getScope().getName()));
-			rcm.setScreenClient(true);
-			SessionVariablesUtil.setIsScreenClient(conn.getClient());
-			
-			rcm.setUserId(parentClient.getUserId());
+			User u = null;
 			Long userId = rcm.getUserId();
 			SessionVariablesUtil.setUserId(conn.getClient(), userId);
-
-			rcm.setStreamPublishName(parentSid);
-			User u = null;
 			if (userId != null) {
 				long _uid = userId.longValue();
 				u = userDao.get(_uid < 0 ? -_uid : _uid);

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1758123&r1=1758122&r2=1758123&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java Sun Aug 28 15:01:01 2016
@@ -227,15 +227,17 @@ public class Application extends Authent
 		if (rcl == null) {
 			return null;
 		}
-		Client client = getOnlineClient(rcl.getPublicSID());
-		if (client == null) {
-			return null;
+		if (!rcl.isScreenClient()) {
+			Client client = getOnlineClient(rcl.getPublicSID());
+			if (client == null) {
+				return null;
+			}
+			rcl.setIsSuperModerator(client.hasRight(Right.superModerator));
+			rcl.setIsMod(client.hasRight(Right.moderator));
+			rcl.setIsBroadcasting(client.hasRight(Right.audio));
+			rcl.setCanVideo(client.hasRight(Right.video));
+			rcl.setCanDraw(client.hasRight(Right.whiteBoard));
 		}
-		rcl.setIsSuperModerator(client.hasRight(Right.superModerator));
-		rcl.setIsMod(client.hasRight(Right.moderator));
-		rcl.setIsBroadcasting(client.hasRight(Right.audio));
-		rcl.setCanVideo(client.hasRight(Right.video));
-		rcl.setCanDraw(client.hasRight(Right.whiteBoard));
 		return rcl;
 	}