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=1753012&r1=1753011&r2=1753012&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 Jul 17 05:32:35 2016 @@ -49,14 +49,13 @@ import org.apache.openmeetings.db.dao.se import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.room.BrowserStatus; import org.apache.openmeetings.db.dto.room.RoomStatus; -import org.apache.openmeetings.db.entity.calendar.Appointment; -import org.apache.openmeetings.db.entity.calendar.MeetingMember; import org.apache.openmeetings.db.entity.log.ConferenceLog; import org.apache.openmeetings.db.entity.room.Client; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.server.Server; import org.apache.openmeetings.db.entity.user.User; +import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.CalendarPatterns; import org.apache.openmeetings.util.InitializationContainer; import org.apache.openmeetings.util.OmFileHelper; @@ -1126,184 +1125,46 @@ public class ScopeApplicationAdapter ext currentClient.setUsercolor(colorObj); + User u = userDao.get(currentClient.getUserId()); // Inject externalUserId if nothing is set yet - if (currentClient.getExternalUserId() == null) { - if (currentClient.getUserId() != null) { - User us = userDao.get(currentClient.getUserId()); - if (us != null) { - currentClient.setExternalUserId(us.getExternalId()); - currentClient.setExternalUserType(us.getExternalType()); - } - } + if (currentClient.getExternalUserId() == null && u != null) { + currentClient.setExternalUserId(u.getExternalId()); + currentClient.setExternalUserType(u.getExternalType()); } - // This can be set without checking for Moderation Flag - currentClient.setIsSuperModerator(isSuperModerator); - - sessionManager.updateClientByStreamId(streamid, currentClient, true, null); - - Room room = roomDao.get(roomId); - if (!room.isHidden(RoomElement.MicrophoneStatus)) { + Room r = roomDao.get(roomId); + if (!r.isHidden(RoomElement.MicrophoneStatus)) { currentClient.setCanGiveAudio(true); } - + sessionManager.updateClientByStreamId(streamid, currentClient, true, null); // first save to get valid room count // Log the User conferenceLogDao.add(ConferenceLog.Type.roomEnter, currentClient.getUserId(), streamid, roomId, currentClient.getUserip(), ""); // Check for Moderation LogicalRoom ENTER - List<Client> clientListRoom = sessionManager.getClientListByRoom(roomId); + List<Client> roomClients = sessionManager.getClientListByRoom(roomId); // Return Object RoomStatus roomStatus = new RoomStatus(); // appointed meeting or moderated Room? => Check Max Users first - - // default logic for non regular rooms - if (!room.isAppointment()) { - if (room.isModerated()) { - // if this is a Moderated Room then the Room can be only - // locked off by the Moderator Bit - // List<RoomClient> clientModeratorListRoom = - // this.sessionManager.getCurrentModeratorByRoom(roomId); - - // If there is no Moderator yet we have to check if the - // current User has the Bit set to true to - // become one, otherwise he won't get Moderation and has to - // wait - if (becomeModerator) { - currentClient.setIsMod(true); - - // There is a need to send an extra Event here, cause at - // this moment there could be - // already somebody in the Room waiting - - // Update the Client List - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - - List<Client> modRoomList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId()); - - //Sync message to everybody - sendMessageToCurrentScope("setNewModeratorByList", modRoomList, false); - } else { - // The current User is not a Teacher/Admin or whatever - // Role that should get the - // Moderation - currentClient.setIsMod(false); - } - } else { - // If this is a normal Room Moderator rules : first come, first draw ;-) - log.debug("setRoomValues : Room" - + roomId - + " not appointed! Moderator rules : first come, first draw ;-)"); - if (clientListRoom.size() == 1) { - log.debug("Room is empty so set this user to be moderation role"); - currentClient.setIsMod(true); - } else { - log.debug("Room is already somebody so set this user not to be moderation role"); - - if (becomeModerator) { - currentClient.setIsMod(true); - - // Update the Client List - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - - List<Client> modRoomList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId()); - - // There is a need to send an extra Event here, - // cause at this moment there could be - // already somebody in the Room waiting -swagner check this comment, 20.01.2012 - - //Sync message to everybody - sendMessageToCurrentScope("setNewModeratorByList", modRoomList, false); - - } else { - // The current User is not a Teacher/Admin or - // whatever Role that should get the Moderation - currentClient.setIsMod(false); - } - } - } - + if (isSuperModerator) { + // This can be set without checking for Moderation Flag + currentClient.setIsSuperModerator(isSuperModerator); + currentClient.setIsMod(isSuperModerator); + } else { + Room.Right rr = AuthLevelUtil.getRoomRight(u, r, r.isAppointment() ? appointmentDao.getByRoom(r.getId()) : null, roomClients.size()); + currentClient.setIsSuperModerator(rr == Room.Right.superModerator); + currentClient.setIsMod(becomeModerator || rr == Room.Right.moderator); + } + if (currentClient.getIsMod()) { // Update the Client List sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - } else { - // If this is an Appointment then the Moderator will be set to the Invitor - Appointment ment = appointmentDao.getByRoom(roomId); - Long userIdInRoomClient = currentClient.getUserId(); - boolean found = false; - boolean moderator_set = false; - if (ment != null) { - // First check owner who is not in the members list - if (ment.getOwner().getId().equals(userIdInRoomClient)) { - found = true; - log.debug("User " - + userIdInRoomClient - + " is moderator due to flag in MeetingMember record"); - currentClient.setIsMod(true); - moderator_set = true; - - // Update the Client List - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - - List<Client> modRoomList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId()); - - // There is a need to send an extra Event here, cause at this moment - // there could be already somebody in the Room waiting - - //Sync message to everybody - sendMessageToCurrentScope("setNewModeratorByList", modRoomList, false); - } - if (!found) { - // Check if current user is set to moderator - for (MeetingMember member : ment.getMeetingMembers()) { - // only persistent users can schedule a meeting - // user-id is only set for registered users - if (member.getUser() != null) { - log.debug("checking user " + member.getUser().getFirstname() - + " for moderator role - ID : " - + member.getUser().getId()); - - if (member.getUser().getId().equals(userIdInRoomClient)) { - found = true; - log.debug("User " + userIdInRoomClient+ " is NOT moderator due to flag in MeetingMember record"); - currentClient.setIsMod(false); - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - break; - } - } - } - } - } - if (!found) { - log.debug("User " - + userIdInRoomClient - + " could not be found as MeetingMember -> definitely no moderator"); - currentClient.setIsMod(false); - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - } else { - // if current user is part of the member list, but moderator - // couldn't be retrieved : first come, first draw! - if (clientListRoom.size() == 1 && !moderator_set) { - log.debug(""); - currentClient.setIsMod(true); - - // Update the Client List - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - - List<Client> modRoomList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId()); - - // There is a need to send an extra Event here, cause at - // this moment there could be - // already somebody in the Room waiting - - //Sync message to everybody - sendMessageToCurrentScope("setNewModeratorByList", modRoomList, false); - - sessionManager.updateClientByStreamId(streamid, currentClient, false, null); - } - } + List<Client> modRoomList = sessionManager.getCurrentModeratorByRoom(currentClient.getRoomId()); + + //Sync message to everybody + sendMessageToCurrentScope("setNewModeratorByList", modRoomList, false); } //Sync message to everybody @@ -1319,7 +1180,7 @@ public class ScopeApplicationAdapter ext // RoomStatus roomStatus = new RoomStatus(); // FIXME: Rework Client Object to DTOs - roomStatus.setClientList(clientListRoom); + roomStatus.setClientList(roomClients); roomStatus.setBrowserStatus(browserStatus); return roomStatus; @@ -1482,10 +1343,9 @@ public class ScopeApplicationAdapter ext * @param whiteboardObjParam - array of parameters being sended to whiteboard * @param whiteboardId - id of whiteboard parameters will be send to */ - @SuppressWarnings({ "rawtypes", "unchecked" }) - public int sendVarsByWhiteboardId(ArrayList whiteboardObjParam, Long whiteboardId) { + public int sendVarsByWhiteboardId(List<?> whiteboardObjParam, Long whiteboardId) { try { - Map whiteboardObj = new HashMap(); + Map<Integer, Object> whiteboardObj = new HashMap<>(); int i = 0; for (Object obj : whiteboardObjParam) { whiteboardObj.put(i++, obj); @@ -1508,15 +1368,16 @@ public class ScopeApplicationAdapter ext if (action.equals("deleteMindMapNodes")) { // Simulate Single Delete Events for z-Index - List actionObject = (List) whiteboardObj.get(3); + List<?> actionObject = (List<?>) whiteboardObj.get(3); - List<List> itemObjects = (List) actionObject.get(3); + @SuppressWarnings("unchecked") + List<List<?>> itemObjects = (List<List<?>>) actionObject.get(3); - Map whiteboardTempObj = new HashMap(); + Map<Integer, Object> whiteboardTempObj = new HashMap<>(); whiteboardTempObj.put(2, "delete"); - for (List itemObject : itemObjects) { - List<Object> tempActionObject = new LinkedList<Object>(); + for (List<?> itemObject : itemObjects) { + List<Object> tempActionObject = new ArrayList<>(); tempActionObject.add("mindmapnode"); tempActionObject.add(itemObject.get(0)); // z-Index -8 tempActionObject.add(null); // simulate -7 @@ -1624,7 +1485,7 @@ public class ScopeApplicationAdapter ext * wrapper method * @param newMessage */ - public void sendMessageToMembers(Object newMessage) { + public void sendMessageToMembers(List<?> newMessage) { //Sync to all users of current scope sendMessageToCurrentScope("sendVarsToMessage", newMessage, false); }
Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java Sun Jul 17 05:32:35 2016 @@ -94,6 +94,18 @@ public class Room implements IDataProvid public static final int RESTRICTED_TYPE_ID = 3; public static final int INTERVIEW_TYPE_ID = 4; + public enum Right { + superModerator + , moderator + , whiteBoard + , share + , remoteControl + , audio + , video + , mute + , exclusive + } + @XmlType(namespace="org.apache.openmeetings.room.element") public enum RoomElement { TopBar @@ -146,6 +158,7 @@ public class Room implements IDataProvid return rt; } } + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java Sun Jul 17 05:32:35 2016 @@ -22,49 +22,78 @@ import static org.apache.openmeetings.ut import java.util.Set; +import org.apache.openmeetings.db.entity.calendar.Appointment; +import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.RoomGroup; +import org.apache.openmeetings.db.entity.room.RoomModerator; import org.apache.openmeetings.db.entity.user.GroupUser; import org.apache.openmeetings.db.entity.user.User; -import org.apache.openmeetings.db.entity.user.User.Right; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; public class AuthLevelUtil { private static final Logger log = Red5LoggerFactory.getLogger(AuthLevelUtil.class, webAppRootKey); - private static boolean check(Set<Right> rights, Right level) { + private static boolean check(Set<User.Right> rights, User.Right level) { boolean result = rights.contains(level); log.debug(String.format("Level %s :: %s", level, result ? "[GRANTED]" : "[DENIED]")); return result; } - public static boolean hasUserLevel(Set<Right> rights) { - return check(rights, Right.Room); + public static boolean hasUserLevel(Set<User.Right> rights) { + return check(rights, User.Right.Room); } - public static boolean hasModLevel(User u, Long groupId) { - boolean result = hasAdminLevel(u.getRights()); - if (!result && groupId != null) { - for (GroupUser ou : u.getGroupUsers()) { - if (groupId.equals(ou.getGroup().getId())) { - if (ou.isModerator()) { - result = true; - } + public static Room.Right getRoomRight(User u, Room r, Appointment a, int userCount) { + Room.Right result = null; + if (hasAdminLevel(u.getRights())) { + //admin user get superModerator level, no-one can kick him/her + result = Room.Right.superModerator; + } else if (r.isAppointment() && a != null) { + // appointment owner is super moderator + if (u.getId().equals(a.getOwner().getId())) { + result = Room.Right.superModerator; + } + } + if (result == null) { + if (!r.isModerated() && 1 == userCount) { + //room is not moderated, first user is moderator! + result = Room.Right.moderator; + } + //performing loop here to set possible 'superModerator' right + for (RoomModerator rm : r.getModerators()) { + if (u.getId().equals(rm.getUser().getId())) { + result = rm.isSuperModerator() ? Room.Right.superModerator : Room.Right.moderator; break; } } + //no need to loop if client is moderator + if (result == null && !r.getRoomGroups().isEmpty()) { + for (RoomGroup rg : r.getRoomGroups()) { + for (GroupUser gu : u.getGroupUsers()) { + if (gu.getGroup().getId().equals(rg.getGroup().getId()) && gu.isModerator()) { + result = Room.Right.moderator; + break; + } + } + if (result != null) { + break; + } + } + } } return result; } - public static boolean hasAdminLevel(Set<Right> rights) { - return check(rights, Right.Admin); + public static boolean hasAdminLevel(Set<User.Right> rights) { + return check(rights, User.Right.Admin); } - public static boolean hasWebServiceLevel(Set<Right> rights) { - return check(rights, Right.Soap); + public static boolean hasWebServiceLevel(Set<User.Right> rights) { + return check(rights, User.Right.Soap); } - public static boolean hasLoginLevel(Set<Right> rights) { - return check(rights, Right.Login); + public static boolean hasLoginLevel(Set<User.Right> rights) { + return check(rights, User.Right.Login); } } Modified: openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java (original) +++ openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java Sun Jul 17 05:32:35 2016 @@ -41,7 +41,6 @@ import java.net.URI; import java.util.HashMap; import java.util.Map; -import org.apache.commons.codec.binary.Hex; import org.apache.openmeetings.screen.webstart.gui.ScreenSharerFrame; import org.red5.client.net.rtmp.INetStreamEventHandler; import org.red5.io.utils.ObjectMap; 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=1753012&r1=1753011&r2=1753012&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 Jul 17 05:32:35 2016 @@ -43,10 +43,10 @@ import org.apache.openmeetings.db.dao.la import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.room.Invitation; import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.db.entity.user.User.Type; import org.apache.openmeetings.util.InitializationContainer; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.pages.ActivatePage; import org.apache.openmeetings.web.pages.MainPage; import org.apache.openmeetings.web.pages.NotInitedPage; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java Sun Jul 17 05:32:35 2016 @@ -24,6 +24,7 @@ import java.util.Set; import java.util.UUID; import org.apache.openmeetings.db.entity.IDataProviderEntity; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.wicket.protocol.ws.api.registry.IKey; /** @@ -34,17 +35,6 @@ import org.apache.wicket.protocol.ws.api public class Client implements IDataProviderEntity { private static final long serialVersionUID = 1L; - public enum Right { - superModerator - , moderator - , whiteBoard - , share - , remoteControl - , audio - , video - , mute - , exclusive - } public enum Activity { broadcast , share 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=1753012&r1=1753011&r2=1753012&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 Jul 17 05:32:35 2016 @@ -31,15 +31,14 @@ import java.util.Calendar; import org.apache.openmeetings.db.dao.basic.ConfigurationDao; import org.apache.openmeetings.db.dao.calendar.AppointmentDao; -import org.apache.openmeetings.db.dao.user.GroupUserDao; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.calendar.Appointment; import org.apache.openmeetings.db.entity.calendar.MeetingMember; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.room.RoomGroup; -import org.apache.openmeetings.db.entity.room.RoomModerator; import org.apache.openmeetings.db.entity.user.GroupUser; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.db.util.AuthLevelUtil; @@ -48,7 +47,6 @@ import org.apache.openmeetings.util.mess import org.apache.openmeetings.util.message.TextRoomMessage; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.app.WebSession; import org.apache.openmeetings.web.common.BasePanel; import org.apache.openmeetings.web.room.activities.ActivitiesPanel; @@ -368,31 +366,9 @@ public class RoomPanel extends BasePanel Client c = getClient(); addUserToRoom(c.setRoomId(getRoom().getId())); User u = getBean(UserDao.class).get(getUserId()); - if (AuthLevelUtil.hasAdminLevel(u.getRights())) { - //admin user get superModerator level, no-one can kick him/her - c.getRights().add(Right.superModerator); - } else { - if (!r.isModerated() && 1 == getRoomClients(r.getId()).size()) { - //room is not moderated, first user is moderator! - c.getRights().add(Right.moderator); - } - //performing loop here to set possible 'superModerator' right - for (RoomModerator rm : r.getModerators()) { - if (getUserId().equals(rm.getUser().getId())) { - c.getRights().add(rm.isSuperModerator() ? Right.superModerator : Right.moderator); - break; - } - } - //no need to loop if client is moderator - if (!c.hasRight(Right.moderator) && !r.getRoomGroups().isEmpty()) { - for (RoomGroup rg : r.getRoomGroups()) { - GroupUser gu = getBean(GroupUserDao.class).getByGroupAndUser(rg.getGroup().getId(), getUserId()); - if (gu.isModerator()) { - c.getRights().add(Right.moderator); - break; - } - } - } + Right rr = AuthLevelUtil.getRoomRight(u, r, r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, getRoomClients(r.getId()).size()); + if (rr != null) { + c.getRights().add(rr); } } } @@ -422,7 +398,7 @@ public class RoomPanel extends BasePanel return hasRight(userId, roomId, Right.moderator); } - public static boolean hasRight(long userId, long roomId, Client.Right r) { + public static boolean hasRight(long userId, long roomId, Right r) { for (Client c : getRoomClients(roomId)) { if (c.getUserId().equals(userId) && c.hasRight(r)) { return true; @@ -475,7 +451,7 @@ public class RoomPanel extends BasePanel } } - public void requestRight(AjaxRequestTarget target, Client.Right right) { + public void requestRight(AjaxRequestTarget target, Right right) { RoomMessage.Type reqType = null; switch (right) { case moderator: @@ -540,7 +516,7 @@ public class RoomPanel extends BasePanel public boolean screenShareAllowed() { Room r = getRoom(); return Room.Type.interview != r.getType() && !r.isHidden(RoomElement.ScreenSharing) - && r.isAllowRecording() && getClient().hasRight(Client.Right.share) && getSharingUser() == null; + && r.isAllowRecording() && getClient().hasRight(Right.share) && getSharingUser() == null; } public RoomSidebar getSidebar() { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java Sun Jul 17 05:32:35 2016 @@ -33,12 +33,12 @@ import java.util.LinkedHashMap; import java.util.Map; import org.apache.openmeetings.db.dao.user.UserDao; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.util.message.RoomMessage; import org.apache.openmeetings.util.message.TextRoomMessage; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.common.BasePanel; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.wicket.Component; @@ -93,13 +93,13 @@ public class ActivitiesPanel extends Bas remove(id, target); break; case decline: - if (room.getClient().hasRight(Client.Right.moderator)) { + if (room.getClient().hasRight(Right.moderator)) { broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id)); } break; case accept: Client client = getOnlineClient(a.getUid()); - if (room.getClient().hasRight(Client.Right.moderator) && client != null && roomId == client.getRoomId()) { + if (room.getClient().hasRight(Right.moderator) && client != null && roomId == client.getRoomId()) { switch (a.getType()) { case reqRightModerator: broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, id)); @@ -152,7 +152,7 @@ public class ActivitiesPanel extends Bas case reqRightAv: case reqRightMute: case reqRightExclusive: - if (room.getClient().hasRight(Client.Right.moderator)) { + if (room.getClient().hasRight(Right.moderator)) { accept.setVisible(true); decline.setVisible(true); break; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Jul 17 05:32:35 2016 @@ -38,7 +38,6 @@ import org.apache.openmeetings.db.entity import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.room.RoomPoll; import org.apache.openmeetings.db.entity.user.User; -import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.util.message.RoomMessage; import org.apache.openmeetings.util.message.TextRoomMessage; import org.apache.openmeetings.web.app.Application; @@ -87,7 +86,7 @@ public class RoomMenuPanel extends Panel } @Override public void onClick(AjaxRequestTarget target) { - room.requestRight(target, Client.Right.moderator); + room.requestRight(target, Room.Right.moderator); } }; private final RoomPanel room; @@ -168,7 +167,7 @@ public class RoomMenuPanel extends Panel @Override public void onClick(AjaxRequestTarget target) { - pollResults.updateModel(target, room.getClient().hasRight(Client.Right.moderator)); + pollResults.updateModel(target, room.getClient().hasRight(Room.Right.moderator)); pollResults.open(target); } }; @@ -266,15 +265,15 @@ public class RoomMenuPanel extends Panel exitMenuItem.setEnabled(notExternalUser);//TODO check this filesMenu.setEnabled(room.getSidebar().isShowFiles()); actionsMenu.setEnabled(!r.isHidden(RoomElement.ActionMenu) && r.isAllowUserQuestions()); - boolean moder = room.getClient().hasRight(Client.Right.moderator); + boolean moder = room.getClient().hasRight(Room.Right.moderator); inviteMenuItem.setEnabled(notExternalUser && moder); //TODO add check "sharing started" boolean shareVisible = room.screenShareAllowed(); shareMenuItem.setEnabled(shareVisible); //FIXME TODO apply* should be enabled if moder is in room applyModerMenuItem.setEnabled(!moder); - applyWbMenuItem.setEnabled(!room.getClient().hasRight(Client.Right.whiteBoard)); - applyAvMenuItem.setEnabled(!room.getClient().hasRight(Client.Right.audio) || !room.getClient().hasRight(Client.Right.video)); + applyWbMenuItem.setEnabled(!room.getClient().hasRight(Room.Right.whiteBoard)); + applyAvMenuItem.setEnabled(!room.getClient().hasRight(Room.Right.audio) || !room.getClient().hasRight(Room.Right.video)); pollCreateMenuItem.setEnabled(moder); pollVoteMenuItem.setEnabled(pollExists && notExternalUser && !pollDao.hasVoted(r.getId(), getUserId())); pollResultMenuItem.setEnabled(pollExists || pollDao.getArchived(r.getId()).size() > 0); @@ -317,7 +316,7 @@ public class RoomMenuPanel extends Panel } public void exit(IPartialPageRequestHandler handler) { - if (WebSession.getRights().contains(Right.Dashboard)) { + if (WebSession.getRights().contains(User.Right.Dashboard)) { roomExit(room, false); room.getMainPage().updateContents(ROOMS_PUBLIC, handler); } else { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java Sun Jul 17 05:32:35 2016 @@ -22,10 +22,10 @@ import static org.apache.openmeetings.we import static org.apache.openmeetings.web.app.WebSession.getUserId; import org.apache.openmeetings.db.dao.user.UserDao; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.sidebar.icon.KickRightIcon; import org.apache.openmeetings.web.room.sidebar.icon.RefreshIcon; 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=1753012&r1=1753011&r2=1753012&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 Jul 17 05:32:35 2016 @@ -27,9 +27,9 @@ import static org.apache.wicket.ajax.att import java.util.ArrayList; import java.util.Arrays; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class AudioRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class ExclusiveRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java Sun Jul 17 05:32:35 2016 @@ -20,8 +20,8 @@ package org.apache.openmeetings.web.room import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.RoomPanel.Action; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class ModeratorRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class MuteRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java Sun Jul 17 05:32:35 2016 @@ -20,8 +20,8 @@ package org.apache.openmeetings.web.room import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.openmeetings.web.room.RoomPanel.Action; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; 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=1753012&r1=1753011&r2=1753012&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 Jul 17 05:32:35 2016 @@ -20,8 +20,8 @@ package org.apache.openmeetings.web.room import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_CHANGE_RIGHT; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.wicket.behavior.AttributeAppender; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java Sun Jul 17 05:32:35 2016 @@ -18,8 +18,8 @@ */ package org.apache.openmeetings.web.room.sidebar.icon; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class VideoRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java Sun Jul 17 05:32:35 2016 @@ -19,9 +19,9 @@ package org.apache.openmeetings.web.room.sidebar.icon; import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.web.app.Client; -import org.apache.openmeetings.web.app.Client.Right; import org.apache.openmeetings.web.room.RoomPanel; public class WhiteboardRightIcon extends RoomRightIcon { Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java Sun Jul 17 05:32:35 2016 @@ -41,6 +41,7 @@ import org.apache.openmeetings.db.dao.ro import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.basic.ChatMessage; import org.apache.openmeetings.db.entity.room.Room; +import org.apache.openmeetings.db.entity.room.Room.Right; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.web.app.Application; @@ -229,7 +230,7 @@ public class ChatPanel extends BasePanel IWebSocketConnectionRegistry reg = WebSocketSettings.Holder.get(Application.get()).getConnectionRegistry(); for (Client c : getRoomClients(m.getToRoom().getId())) { try { - if (!m.isNeedModeration() || (m.isNeedModeration() && c.hasRight(Client.Right.moderator))) { + if (!m.isNeedModeration() || (m.isNeedModeration() && c.hasRight(Right.moderator))) { IWebSocketConnection con = reg.getConnection(Application.get(), c.getSessionId(), new PageIdKey(c.getPageId())); if (con != null) { con.sendMessage(msg);
