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



Reply via email to