Author: solomax
Date: Sun Jul 17 05:32:35 2016
New Revision: 1753012
URL: http://svn.apache.org/viewvc?rev=1753012&view=rev
Log:
[OPENMEETINGS-1416] Room moderator right calculation is unified
Modified:
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
openmeetings/application/branches/3.2.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
Modified:
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
Sun Jul 17 05:32:35 2016
@@ -86,27 +86,6 @@ public class ConferenceService {
}
/**
- * gets all rooms of an group TODO:check if the requesting user is
- * also member of that group
- *
- * @param SID
- * @param groupId
- * @return - all rooms of an group
- */
- public SearchResult<RoomGroup> getRoomsByGroup(String SID,
- long groupId, int start, int max, String orderby,
- boolean asc) {
-
- log.debug("getRoomsByGroup");
-
- Long userId = sessiondataDao.check(SID);
- if (AuthLevelUtil.hasModLevel(userDao.get(userId), groupId)) {
- return roomManager.getRoomGroupByGroupId(groupId,
start, max, orderby, asc);
- }
- return null;
- }
-
- /**
* get a List of all public availible rooms (non-appointments)
*
* @param SID
Modified:
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
Sun Jul 17 05:32:35 2016
@@ -50,13 +50,12 @@ 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.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;
@@ -1167,188 +1166,50 @@ 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.getShowMicrophoneStatus()) {
+ Room r = roomDao.get(roomId);
+ if (r.getShowMicrophoneStatus()) {
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
- if (clientListRoom.size() >
room.getNumberOfPartizipants()) {
+ if (roomClients.size() > r.getNumberOfPartizipants()) {
roomStatus.setRoomFull(true);
return roomStatus;
}
-
- // 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
@@ -1364,7 +1225,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;
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
(original)
+++
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
Sun Jul 17 05:32:35 2016
@@ -89,6 +89,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
+ }
+
public enum Type {
conference(CONFERENCE_TYPE_ID)
//, audience(2)
@@ -129,6 +141,7 @@ public class Room implements IDataProvid
return rt;
}
}
+
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
Modified:
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
(original)
+++
openmeetings/application/branches/3.1.x/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/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
(original)
+++
openmeetings/application/branches/3.1.x/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/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
Sun Jul 17 05:32:35 2016
@@ -86,27 +86,6 @@ public class ConferenceService {
}
/**
- * gets all rooms of an group TODO:check if the requesting user is
- * also member of that group
- *
- * @param SID
- * @param groupId
- * @return - all rooms of an group
- */
- public SearchResult<RoomGroup> getRoomsByGroup(String SID,
- long groupId, int start, int max, String orderby,
- boolean asc) {
-
- log.debug("getRoomsByGroup");
-
- Long userId = sessiondataDao.check(SID);
- if (AuthLevelUtil.hasModLevel(userDao.get(userId), groupId)) {
- return roomManager.getRoomGroupByGroupId(groupId,
start, max, orderby, asc);
- }
- return null;
- }
-
- /**
* get a List of all public availible rooms (non-appointments)
*
* @param SID
Modified:
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/ScopeApplicationAdapter.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/CoreScreenShare.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
Sun 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Client.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
Sun Jul 17 05:32:35 2016
@@ -24,22 +24,26 @@ import static org.apache.openmeetings.we
import static org.apache.openmeetings.web.app.Application.getRoomClients;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static
org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
+import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Arrays;
import java.util.Calendar;
+import java.util.UUID;
+import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
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 +52,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;
@@ -72,6 +75,7 @@ import org.apache.wicket.protocol.ws.api
import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
import org.apache.wicket.protocol.ws.api.registry.PageIdKey;
import org.apache.wicket.protocol.ws.concurrent.Executor;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.red5.logging.Red5LoggerFactory;
@@ -91,6 +95,7 @@ public class RoomPanel extends BasePanel
private static final Logger log =
Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
private static final String ACCESS_DENIED_ID = "access-denied";
private static final String EVENT_DETAILS_ID = "event-details";
+ private static final String PARAM_WB_ID = "wbId";
public enum Action {
kick
, refresh
@@ -116,6 +121,17 @@ public class RoomPanel extends BasePanel
}
}
};
+ private final AbstractDefaultAjaxBehavior activeWb = new
AbstractDefaultAjaxBehavior() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void respond(AjaxRequestTarget target) {
+ long wbId =
getRequest().getRequestParameters().getParameterValue(PARAM_WB_ID).toLong(Long.MIN_VALUE);
+ if (wbId != Long.MIN_VALUE) {
+ activeWbId = wbId;
+ }
+ }
+ };
private RedirectMessageDialog roomClosed;
private RoomMenuPanel menu;
private RoomSidebar sidebar;
@@ -123,6 +139,7 @@ public class RoomPanel extends BasePanel
private String sharingUser = null;
private String recordingUser = null;
private String publishingUser = null; //TODO add
+ private long activeWbId = -1;
public RoomPanel(String id, Room r) {
super(id);
@@ -153,12 +170,82 @@ public class RoomPanel extends BasePanel
@Override
public void onDrop(AjaxRequestTarget target, Component
component) {
Object o = component.getDefaultModelObject();
- if (o instanceof FileItem) {
+ if (activeWbId > 0 && o instanceof FileItem) {
+ //target.appendJavaScript("");
+ /*
+ 0: 'swf'
+ 1: «string(223)|
'http://localhost:5080/openmeetings/DownloadHandler?fileName=97321ad42af97bee825988d3ab9a14fd.swf&moduleName=viâ¦Â»
+ 2: «string(223)|
'http://localhost:5080/openmeetings/DownloadHandler?fileName=97321ad42af97bee825988d3ab9a14fd.swf&moduleName=viâ¦Â»
+ 3: '97321ad42af97bee825988d3ab9a14fd.swf'
+ 4: 'videoconf1'
+ 5: '/97321ad42af97bee825988d3ab9a14fd'
+ 6: 'files'
+ 7: 'public'
+ 8: 1
+ 9: 0
+ 10: 0
+ 11: 354
+ 12: 590
+ 13: 20
+ 14: 354
+ 15: 590
+ 16: 100
+ 17: '97321ad42af97bee825988d3ab9a14fd.swf1464528901162'
+ 18: 'DR600GW-HD_Manual_EN_WEB_Ver.1.01_140704.pdf'
+ 19: true
+ 20: 1
+ 21: null
+ 22: 0
+ 23: 0
+ 24: 0
+ 25: 354
+ 26: 590
+ 27: 'swfpresentationobject_1464528901162'
+
+ */
+ FileItem fi = (FileItem)o;
+ int width = 0, height = 0;
+ if (fi.getFlvWidth() != null &&
fi.getFlvHeight() != null) {
+ width = fi.getFlvWidth();
+ height = fi.getFlvHeight();
+ }
+ String fuid =
UUID.randomUUID().toString();
+ String url = urlFor(new
RoomSwfResourceReference(), new PageParameters().add("id",
fi.getId()).add("uid", getClient().getUid())).toString();
+
getBean(ScopeApplicationAdapter.class).sendVarsByWhiteboardId(Arrays.asList(
+ "swf" // 0
+ , url // urlname
+ , "--dummy--" // baseurl
+ , fi.getHash() //
fileName //3
+ , "--dummy--" //
moduleName //4
+ , "--dummy--" //
parentPath //5
+ , "--dummy--" // room
//6
+ , "--dummy--" // domain
//7
+ , 1 // slideNumber //8
+ , 0 // innerx //9
+ , 0 // innery //10
+ , width // innerwidth
//11
+ , height // innerheight
//12
+ , 20 // zoomlevel //13
+ , width // initwidth
//14
+ , height // initheight
//15
+ , 100 // currentzoom
//16 FIXME TODO
+ , fuid //
uniquObjectSyncName //17
+ , fi.getName() //
standardFileName //18
+ , true // fullFit //19
FIXME TODO
+ , 1 // zIndex //-8
FIXME TODO
+ , null //-7
+ , 0 // this.counter
//-6 FIXME TODO
+ , 0 // posx //-5
+ , 0 // posy //-4
+ , width // width //-3
+ , height // height //-2
+ , fuid //
this.currentlayer.name //-1
+ ), activeWbId);
}
}
};
room.add(wbArea.add(new SwfPanel("whiteboard", r.getId(),
getClient().getUid())));
- room.add(aab);
+ room.add(aab, activeWb);
room.add(sidebar = new RoomSidebar("sidebar", this));
room.add(activities = new ActivitiesPanel("activities", this));
add(roomClosed = new RedirectMessageDialog("room-closed",
"1098", r.isClosed(), r.getRedirectURL()));
@@ -338,31 +425,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);
}
}
}
@@ -392,7 +457,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;
@@ -442,10 +507,11 @@ public class RoomPanel extends BasePanel
response.render(new
PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
if (room.isVisible()) {
response.render(OnDomReadyHeaderItem.forScript(aab.getCallbackScript()));
+ response.render(new
PriorityHeaderItem(JavaScriptHeaderItem.forScript(getNamedFunction("setActiveWbId",
activeWb, explicit(PARAM_WB_ID)), "setActiveWbId")));
}
}
- public void requestRight(AjaxRequestTarget target, Client.Right right) {
+ public void requestRight(AjaxRequestTarget target, Right right) {
RoomMessage.Type reqType = null;
switch (right) {
case moderator:
@@ -510,7 +576,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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
Sun 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/AudioRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ExclusiveRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ModeratorRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/MuteRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RefreshIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RemoteControlRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/RoomRightIcon.java
Sun 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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ScreenShareRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/VideoRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/WhiteboardRightIcon.java
(original)
+++
openmeetings/application/branches/3.2.x/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/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/ChatPanel.java
(original)
+++
openmeetings/application/branches/3.2.x/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);
Modified:
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL:
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1753012&r1=1753011&r2=1753012&view=diff
==============================================================================
---
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
(original)
+++
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
Sun Jul 17 05:32:35 2016
@@ -86,27 +86,6 @@ public class ConferenceService {
}
/**
- * gets all rooms of an group TODO:check if the requesting user is
- * also member of that group
- *
- * @param SID
- * @param groupId
- * @return - all rooms of an group
- */
- public SearchResult<RoomGroup> getRoomsByGroup(String SID,
- long groupId, int start, int max, String orderby,
- boolean asc) {
-
- log.debug("getRoomsByGroup");
-
- Long userId = sessiondataDao.check(SID);
- if (AuthLevelUtil.hasModLevel(userDao.get(userId), groupId)) {
- return roomManager.getRoomGroupByGroupId(groupId,
start, max, orderby, asc);
- }
- return null;
- }
-
- /**
* get a List of all public availible rooms (non-appointments)
*
* @param SID