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())) {