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/04/24 19:11:43 UTC

svn commit: r1740715 - in /openmeetings/application: branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/...

Author: solomax
Date: Sun Apr 24 17:11:43 2016
New Revision: 1740715

URL: http://svn.apache.org/viewvc?rev=1740715&view=rev
Log:
[OPENMEETINGS-1376] allow/deny right seems to work

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java

Modified: openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx Sun Apr 24 17:11:43 2016
@@ -1004,7 +1004,7 @@
 		
 		<method name="clientUpdated" args="client">
 		<![CDATA[
-			if ($debug) Debug.write("drawAllowStatus changes ###### ");
+			if ($debug) Debug.write("clientUpdated changes ###### ");
 			if (client.publicSID == canvas.publicSID) {
 				if ($debug) Debug.write("Its about You ", client);
 				canvas.setAttribute("isAllowedToDraw", client.canDraw);
@@ -1022,9 +1022,13 @@
 					} else {
 						canvas.commonVideoViewContent.createEditRecordStream(false, false, -1);
 					}
+					canvas.setAttribute("lastBroadCastingUser", client);
+				} else {
+					if (canvas.inner.editRecordStream != null) {
+						canvas.inner.editRecordStream.destroy();
+					}
 				}
 			}
-			canvas.setAttribute("lastBroadCastingUser", client);
 		]]>
 		</method>
 		

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=1740715&r1=1740714&r2=1740715&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 Apr 24 17:11:43 2016
@@ -216,6 +216,7 @@ public class Application extends Authent
 	
 	public static void removeOnlineUser(Client c) {
 		if (c != null) {
+			log.debug("Removing online client: {}, room: {}", c.getUid(), c.getRoomId());
 			ONLINE_USERS.remove(c.getUid());
 		}
 	}
@@ -300,6 +301,7 @@ public class Application extends Authent
 	}
 	
 	public static Client removeUserFromRoom(Client c) {
+		log.debug("Removing room client: {}, room: {}", c.getUid(), c.getRoomId());
 		if (c.getRoomId() != null) {
 			Set<Client> clients = ROOMS.get(c.getRoomId());
 			if (clients != null) {

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Sun Apr 24 17:11:43 2016
@@ -406,6 +406,17 @@ public class RoomPanel extends BasePanel
 		for (Right right : rights) {
 			client.getRights().add(right);
 		}
+		broadcast(target, client);
+	}
+
+	public void denyRight(AjaxRequestTarget target, Client client, Right... rights) {
+		for (Right right : rights) {
+			client.getRights().remove(right);
+		}
+		broadcast(target, client);
+	}
+
+	public void broadcast(AjaxRequestTarget target, Client client) {
 		broadcast(new RoomMessage(getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
 		RoomBroadcaster.sendUpdatedClient(client);
 	}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Sun Apr 24 17:11:43 2016
@@ -46,6 +46,7 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -54,7 +55,7 @@ import com.googlecode.wicket.jquery.ui.w
 public class RoomSidebar extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = Red5LoggerFactory.getLogger(RoomSidebar.class, webAppRootKey);
-	public static final String FUNC_REQUEST_RIGHT = "requestRight";
+	public static final String FUNC_CHANGE_RIGHT = "changeRight";
 	public static final String PARAM_RIGHT = "right";
 	public static final String PARAM_UID = "uid";
 	private final RoomPanel room;
@@ -80,10 +81,28 @@ public class RoomSidebar extends Panel {
 		protected void respond(AjaxRequestTarget target) {
 			try {
 				String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+				if (Strings.isEmpty(uid)) {
+					return;
+				}
 				Right right = Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString()); 
 				if (room.getClient().hasRight(Right.moderator)) {
 					Client client = getOnlineClient(uid);
-					room.allowRight(target, client, right);
+					if (client == null) {
+						return;
+					}
+					if (client.hasRight(right)) {
+						if (Right.audio == right) {
+							room.denyRight(target, client, right, Right.video);
+						} else {
+							room.denyRight(target, client, right);
+						}
+					} else {
+						if (Right.video == right) {
+							room.allowRight(target, client, Right.audio, right);
+						} else {
+							room.allowRight(target, client, right);
+						}
+					}
 				} else {
 					room.requestRight(target, RoomMessage.Type.requestRightModerator);
 				}
@@ -144,7 +163,7 @@ public class RoomSidebar extends Panel {
 	@Override
 	public void renderHead(IHeaderResponse response) {
 		super.renderHead(response);
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_REQUEST_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_REQUEST_RIGHT)));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_CHANGE_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_CHANGE_RIGHT)));
 	}
 	
 	private ListView<Client> updateUsers() {

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Sun Apr 24 17:11:43 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_REQUEST_RIGHT;
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_CHANGE_RIGHT;
 
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
@@ -32,6 +32,7 @@ public abstract class RoomRightIcon exte
 	private static final String CLS_CLICKABLE = "clickable ";
 	private static final String CLS_GRANTED = "granted ";
 	private static final String ICON_CLASS = "ui-icon align-left ";
+	private final RoomPanel room;
 	protected final Right right;
 	protected final boolean self;
 	protected final Client client;
@@ -39,6 +40,7 @@ public abstract class RoomRightIcon exte
 	
 	public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
 		super(id);
+		this.room = room;
 		this.client = client;
 		this.right = right;
 		self = room.getClient().getUid().equals(client.getUid());
@@ -62,9 +64,11 @@ public abstract class RoomRightIcon exte
 		cls.append(mainCssClass);
 		if (hasRight()) {
 			cls.append(CLS_GRANTED);
-		} else {
+		}
+		if (!self && room.getClient().hasRight(Right.moderator)) {
+			//request/remove
 			cls.append(CLS_CLICKABLE);
-			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_REQUEST_RIGHT, right.name(), client.getUid())));
+			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid())));
 		}
 		add(AttributeAppender.replace("title", getTitle()));
 		add(AttributeAppender.replace("class", cls));

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=1740715&r1=1740714&r2=1740715&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 Apr 24 17:11:43 2016
@@ -216,6 +216,7 @@ public class Application extends Authent
 	
 	public static void removeOnlineUser(Client c) {
 		if (c != null) {
+			log.debug("Removing online client: {}, room: {}", c.getUid(), c.getRoomId());
 			ONLINE_USERS.remove(c.getUid());
 		}
 	}
@@ -300,6 +301,7 @@ public class Application extends Authent
 	}
 	
 	public static Client removeUserFromRoom(Client c) {
+		log.debug("Removing room client: {}, room: {}", c.getUid(), c.getRoomId());
 		if (c.getRoomId() != null) {
 			Set<Client> clients = ROOMS.get(c.getRoomId());
 			if (clients != null) {

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Sun Apr 24 17:11:43 2016
@@ -437,6 +437,17 @@ public class RoomPanel extends BasePanel
 		for (Right right : rights) {
 			client.getRights().add(right);
 		}
+		broadcast(target, client);
+	}
+
+	public void denyRight(AjaxRequestTarget target, Client client, Right... rights) {
+		for (Right right : rights) {
+			client.getRights().remove(right);
+		}
+		broadcast(target, client);
+	}
+
+	public void broadcast(AjaxRequestTarget target, Client client) {
 		broadcast(new RoomMessage(getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
 		RoomBroadcaster.sendUpdatedClient(client);
 	}

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java Sun Apr 24 17:11:43 2016
@@ -46,6 +46,7 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -54,7 +55,7 @@ import com.googlecode.wicket.jquery.ui.w
 public class RoomSidebar extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = Red5LoggerFactory.getLogger(RoomSidebar.class, webAppRootKey);
-	public static final String FUNC_REQUEST_RIGHT = "requestRight";
+	public static final String FUNC_CHANGE_RIGHT = "changeRight";
 	public static final String PARAM_RIGHT = "right";
 	public static final String PARAM_UID = "uid";
 	private final RoomPanel room;
@@ -80,10 +81,28 @@ public class RoomSidebar extends Panel {
 		protected void respond(AjaxRequestTarget target) {
 			try {
 				String uid = getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString(); 
+				if (Strings.isEmpty(uid)) {
+					return;
+				}
 				Right right = Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString()); 
 				if (room.getClient().hasRight(Right.moderator)) {
 					Client client = getOnlineClient(uid);
-					room.allowRight(target, client, right);
+					if (client == null) {
+						return;
+					}
+					if (client.hasRight(right)) {
+						if (Right.audio == right) {
+							room.denyRight(target, client, right, Right.video);
+						} else {
+							room.denyRight(target, client, right);
+						}
+					} else {
+						if (Right.video == right) {
+							room.allowRight(target, client, Right.audio, right);
+						} else {
+							room.allowRight(target, client, right);
+						}
+					}
 				} else {
 					room.requestRight(target, RoomMessage.Type.requestRightModerator);
 				}
@@ -144,7 +163,7 @@ public class RoomSidebar extends Panel {
 	@Override
 	public void renderHead(IHeaderResponse response) {
 		super.renderHead(response);
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_REQUEST_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_REQUEST_RIGHT)));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction(FUNC_CHANGE_RIGHT, requestRight, explicit(PARAM_RIGHT), explicit(PARAM_UID)), FUNC_CHANGE_RIGHT)));
 	}
 	
 	private ListView<Client> updateUsers() {

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1740715&r1=1740714&r2=1740715&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java Sun Apr 24 17:11:43 2016
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.web.room.sidebar.icon;
 
-import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_REQUEST_RIGHT;
+import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_CHANGE_RIGHT;
 
 import org.apache.openmeetings.web.app.Client;
 import org.apache.openmeetings.web.app.Client.Right;
@@ -32,6 +32,7 @@ public abstract class RoomRightIcon exte
 	private static final String CLS_CLICKABLE = "clickable ";
 	private static final String CLS_GRANTED = "granted ";
 	private static final String ICON_CLASS = "ui-icon align-left ";
+	private final RoomPanel room;
 	protected final Right right;
 	protected final boolean self;
 	protected final Client client;
@@ -39,6 +40,7 @@ public abstract class RoomRightIcon exte
 	
 	public RoomRightIcon(String id, Client client, Right right, RoomPanel room) {
 		super(id);
+		this.room = room;
 		this.client = client;
 		this.right = right;
 		self = room.getClient().getUid().equals(client.getUid());
@@ -62,9 +64,11 @@ public abstract class RoomRightIcon exte
 		cls.append(mainCssClass);
 		if (hasRight()) {
 			cls.append(CLS_GRANTED);
-		} else {
+		}
+		if (!self && room.getClient().hasRight(Right.moderator)) {
+			//request/remove
 			cls.append(CLS_CLICKABLE);
-			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_REQUEST_RIGHT, right.name(), client.getUid())));
+			add(AttributeAppender.replace("onclick", String.format("%s('%s', '%s');", FUNC_CHANGE_RIGHT, right.name(), client.getUid())));
 		}
 		add(AttributeAppender.replace("title", getTitle()));
 		add(AttributeAppender.replace("class", cls));