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 2017/03/06 05:17:26 UTC

svn commit: r1785593 - in /openmeetings/application: branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ branches/3.2.x/openmeetings-web/sr...

Author: solomax
Date: Mon Mar  6 05:17:26 2017
New Revision: 1785593

URL: http://svn.apache.org/viewvc?rev=1785593&view=rev
Log:
[OPENMEETINGS-1586] room rights works as expected if user was changed just before room enter

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
    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/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.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

Modified: openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java?rev=1785593&r1=1785592&r2=1785593&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java Mon Mar  6 05:17:26 2017
@@ -53,7 +53,7 @@ public class Client implements IDataProv
 	}
 	private final String sessionId;
 	private int pageId;
-	private final User user;
+	private User user;
 	private Long roomId;
 	private final String uid;
 	private final String sid;
@@ -110,6 +110,10 @@ public class Client implements IDataProv
 		return user;
 	}
 
+	public void updateUser(UserDao dao) {
+		user = dao.get(user.getId());
+	}
+
 	public Long getUserId() {
 		return user.getId();
 	}
@@ -122,8 +126,8 @@ public class Client implements IDataProv
 		return sid;
 	}
 
-	public Set<Right> getRights() {
-		return rights;
+	public void clearRights() {
+		rights.clear();
 	}
 
 	public boolean hasRight(Right right) {
@@ -145,6 +149,12 @@ public class Client implements IDataProv
 		}
 	}
 
+	public void deny(Right... _rights) {
+		for (Right right : _rights) {
+			rights.remove(right);
+		}
+	}
+
 	public Set<Activity> getActivities() {
 		return activities;
 	}

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -389,7 +389,7 @@ public class Application extends Authent
 				c.setRoomId(null);
 			}
 			c.getActivities().clear();
-			c.getRights().clear();
+			c.clearRights();
 		}
 		return c;
 	}

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -38,6 +38,7 @@ import org.apache.openmeetings.core.remo
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
@@ -149,6 +150,8 @@ public class RoomPanel extends BasePanel
 	@Override
 	protected void onInitialize() {
 		super.onInitialize();
+		//let's refresh user in client
+		getClient().updateUser(getBean(UserDao.class));
 		Component accessDenied = new WebMarkupContainer(ACCESS_DENIED_ID).setVisible(false);
 		Component eventDetail = new WebMarkupContainer(EVENT_DETAILS_ID).setVisible(false);
 
@@ -406,7 +409,7 @@ public class RoomPanel extends BasePanel
 			addUserToRoom(c.setRoomId(getRoom().getId()));
 			SOAPLogin soap = WebSession.get().getSoapLogin();
 			if (soap != null && soap.isModerator()) {
-				c.getRights().add(Right.superModerator);
+				c.allow(Right.superModerator);
 			} else {
 				//FIXME TODO !!! c.getUser != getUserId
 				Set<Right> rr = AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, getRoomClients(r.getId()).size());
@@ -527,7 +530,7 @@ public class RoomPanel extends BasePanel
 
 	public void denyRight(AjaxRequestTarget target, Client client, Right... rights) {
 		for (Right right : rights) {
-			client.getRights().remove(right);
+			client.deny(right);
 		}
 		if (client.hasActivity(Client.Activity.broadcastA) && !client.hasRight(Right.audio)) {
 			client.remove(Client.Activity.broadcastA);

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -393,10 +393,10 @@ public class RoomSidebar extends Panel {
 		}
 		if (!activityAllowed(c, a, room.getRoom()) && room.getClient().hasRight(Right.moderator)) {
 			if (a == Activity.broadcastA || a == Activity.broadcastAV) {
-				c.getRights().add(Room.Right.audio);
+				c.allow(Room.Right.audio);
 			}
 			if (!room.getRoom().isAudioOnly() && (a == Activity.broadcastV || a == Activity.broadcastAV)) {
-				c.getRights().add(Room.Right.video);
+				c.allow(Room.Right.video);
 			}
 		}
 		if (activityAllowed(c, a, room.getRoom())) {

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java?rev=1785593&r1=1785592&r2=1785593&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java Mon Mar  6 05:17:26 2017
@@ -53,7 +53,7 @@ public class Client implements IDataProv
 	}
 	private final String sessionId;
 	private int pageId;
-	private final User user;
+	private User user;
 	private Long roomId;
 	private final String uid;
 	private final String sid;
@@ -110,6 +110,10 @@ public class Client implements IDataProv
 		return user;
 	}
 
+	public void updateUser(UserDao dao) {
+		user = dao.get(user.getId());
+	}
+
 	public Long getUserId() {
 		return user.getId();
 	}
@@ -122,8 +126,8 @@ public class Client implements IDataProv
 		return sid;
 	}
 
-	public Set<Right> getRights() {
-		return rights;
+	public void clearRights() {
+		rights.clear();
 	}
 
 	public boolean hasRight(Right right) {
@@ -145,6 +149,12 @@ public class Client implements IDataProv
 		}
 	}
 
+	public void deny(Right... _rights) {
+		for (Right right : _rights) {
+			rights.remove(right);
+		}
+	}
+
 	public Set<Activity> getActivities() {
 		return activities;
 	}

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -389,7 +389,7 @@ public class Application extends Authent
 				c.setRoomId(null);
 			}
 			c.getActivities().clear();
-			c.getRights().clear();
+			c.clearRights();
 		}
 		return c;
 	}

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -38,6 +38,7 @@ import org.apache.openmeetings.core.remo
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
@@ -159,6 +160,8 @@ public class RoomPanel extends BasePanel
 	@Override
 	protected void onInitialize() {
 		super.onInitialize();
+		//let's refresh user in client
+		getClient().updateUser(getBean(UserDao.class));
 		Component accessDenied = new WebMarkupContainer(ACCESS_DENIED_ID).setVisible(false);
 		Component eventDetail = new WebMarkupContainer(EVENT_DETAILS_ID).setVisible(false);
 
@@ -418,7 +421,7 @@ public class RoomPanel extends BasePanel
 			addUserToRoom(c.setRoomId(getRoom().getId()));
 			SOAPLogin soap = WebSession.get().getSoapLogin();
 			if (soap != null && soap.isModerator()) {
-				c.getRights().add(Right.superModerator);
+				c.allow(Right.superModerator);
 			} else {
 				//FIXME TODO !!! c.getUser != getUserId
 				Set<Right> rr = AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, getRoomClients(r.getId()).size());
@@ -538,7 +541,7 @@ public class RoomPanel extends BasePanel
 
 	public void denyRight(AjaxRequestTarget target, Client client, Right... rights) {
 		for (Right right : rights) {
-			client.getRights().remove(right);
+			client.deny(right);
 		}
 		if (client.hasActivity(Client.Activity.broadcastA) && !client.hasRight(Right.audio)) {
 			client.remove(Client.Activity.broadcastA);

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=1785593&r1=1785592&r2=1785593&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 Mon Mar  6 05:17:26 2017
@@ -393,10 +393,10 @@ public class RoomSidebar extends Panel {
 		}
 		if (!activityAllowed(c, a, room.getRoom()) && room.getClient().hasRight(Right.moderator)) {
 			if (a == Activity.broadcastA || a == Activity.broadcastAV) {
-				c.getRights().add(Room.Right.audio);
+				c.allow(Room.Right.audio);
 			}
 			if (!room.getRoom().isAudioOnly() && (a == Activity.broadcastV || a == Activity.broadcastAV)) {
-				c.getRights().add(Room.Right.video);
+				c.allow(Room.Right.video);
 			}
 		}
 		if (activityAllowed(c, a, room.getRoom())) {