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