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;
}