Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ServerWebService.java Tue Aug 9 03:17:22 2016 @@ -43,6 +43,7 @@ import org.apache.openmeetings.db.dto.ba import org.apache.openmeetings.db.dto.basic.ServiceResult.Type; import org.apache.openmeetings.db.dto.server.ServerDTO; import org.apache.openmeetings.db.entity.server.Server; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.webservice.error.ServiceException; import org.red5.logging.Red5LoggerFactory; @@ -90,9 +91,9 @@ public class ServerWebService { ) throws ServiceException { log.debug("getServers enter"); - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return ServerDTO.list(serverDao.get(start, max)); } else { log.warn("Insuffisient permissions"); @@ -113,9 +114,9 @@ public class ServerWebService { @Path("/count") public long count(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException { log.debug("getServerCount enter"); - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return serverDao.count(); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 @@ -136,7 +137,8 @@ public class ServerWebService { @Path("/") public ServerDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="server") @QueryParam("server") ServerDTO server) throws ServiceException { log.debug("saveServerCount enter"); - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { Server s = server.get(); return new ServerDTO(serverDao.update(s, userId)); @@ -160,7 +162,8 @@ public class ServerWebService { @Path("/{id}") public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException { log.debug("saveServerCount enter"); - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { Server s = serverDao.get(id);
Modified: openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original) +++ openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Tue Aug 9 03:17:22 2016 @@ -132,9 +132,8 @@ public class UserWebService implements U @Path("/") public List<UserDTO> get(@WebParam(name="sid") @QueryParam("sid") String sid) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return UserDTO.list(userDao.getAllUsers()); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 @@ -159,9 +158,8 @@ public class UserWebService implements U ) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { User testUser = userDao.getExternalUser(user.getExternalId(), user.getExternalType()); if (testUser != null) { @@ -200,7 +198,7 @@ public class UserWebService implements U u.setExternalType(user.getExternalType()); } - u = userDao.update(u, authUserId); + u = userDao.update(u, sd.getUserId()); return new UserDTO(u); } else { @@ -223,10 +221,9 @@ public class UserWebService implements U @Path("/{id}") public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); - - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) { - userDao.delete(userDao.get(id), authUserId); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { + userDao.delete(userDao.get(id), sd.getUserId()); return new ServiceResult(id, "Deleted", Type.SUCCESS); } else { @@ -251,13 +248,12 @@ public class UserWebService implements U ) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); - - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { User user = userDao.getExternalUser(externalId, externalType); // Setting user deleted - userDao.delete(user, authUserId); + userDao.delete(user, sd.getUserId()); return new ServiceResult(user.getId(), "Deleted", Type.SUCCESS); } else { @@ -283,8 +279,8 @@ public class UserWebService implements U ) throws ServiceException { try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { RemoteSessionObject remoteSessionObject = new RemoteSessionObject( user.getLogin(), user.getFirstname(), user.getLastname() , user.getProfilePictureUrl(), user.getEmail() @@ -306,7 +302,6 @@ public class UserWebService implements U ); if (hash != null) { - Sessiondata sd = sessionDao.get(sid); if (options.isAllowSameURLMultipleTimes()) { sd.setPermanent(true); } @@ -333,8 +328,8 @@ public class UserWebService implements U @Path("/kick/{publicsid}") public ServiceResult kick(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="publicsid") @PathParam("publicsid") String publicSID) throws ServiceException { try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { Boolean success = userManagement.kickUserByPublicSID(sid, publicSID); return new ServiceResult(Boolean.TRUE.equals(success) ? 1L : 0L, Boolean.TRUE.equals(success) ? "deleted" : "not deleted", Type.SUCCESS); @@ -355,9 +350,8 @@ public class UserWebService implements U @GET @Path("/count/{roomid}") public int count(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="roomid") @PathParam("roomid") Long roomId) { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { return conferenceService.getRoomClientsListByRoomId(roomId).size(); } return -1; Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceLibrary.java Tue Aug 9 03:17:22 2016 @@ -39,10 +39,12 @@ import org.apache.openmeetings.db.dao.se import org.apache.openmeetings.db.dao.server.SessiondataDao; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.file.LibraryPresentation; +import org.apache.openmeetings.db.dto.server.ClientSessionInfo; import org.apache.openmeetings.db.entity.file.FileExplorerItem; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.file.FileItem.Type; import org.apache.openmeetings.db.entity.room.Client; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.OmFileHelper; import org.red5.logging.Red5LoggerFactory; @@ -64,7 +66,7 @@ public class ConferenceLibrary implement @Autowired private ISessionManager sessionManager; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private UserDao userDao; @Autowired @@ -74,13 +76,13 @@ public class ConferenceLibrary implement @Autowired private ScopeApplicationAdapter scopeAdapter; - public LibraryPresentation getPresentationPreviewFileExplorer(String SID, String parentFolder) { + public LibraryPresentation getPresentationPreviewFileExplorer(String sid, String parentFolder) { try { - Long users_id = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); - log.debug("#############users_id : " + users_id); + log.debug("#############users_id : " + sd.getUserId()); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { File working_dir = new File(OmFileHelper.getUploadFilesDir(), parentFolder); log.debug("############# working_dir : " + working_dir); @@ -103,16 +105,16 @@ public class ConferenceLibrary implement * * Save an Object to the library and returns the file-explorer Id * - * @param SID + * @param sid * @param roomId * @param fileName * @param tObjectRef * @return - file-explorer Id in case of success, -1 otherwise */ - public Long saveAsObject(String SID, Long roomId, String fileName, Object tObjectRef) { + public Long saveAsObject(String sid, Long roomId, String fileName, Object tObjectRef) { try { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { // LinkedHashMap tObject = (LinkedHashMap)t; // ArrayList tObject = (ArrayList)t; @@ -124,7 +126,7 @@ public class ConferenceLibrary implement log.debug("saveAsObject" + tObject.size()); - FileExplorerItem file = fileDao.add(fileName, null, null, roomId, userId, Type.WmlFile, "", ""); + FileExplorerItem file = fileDao.add(fileName, null, null, roomId, sd.getUserId(), Type.WmlFile, "", ""); LibraryDocumentConverter.writeToLocalFolder(file.getHash(), tObject); return file.getId(); @@ -144,7 +146,12 @@ public class ConferenceLibrary implement * @param fi - FileItem of the Wml being loaded */ public void sendToWhiteboard(String uid, Long wbId, FileItem fi) { - Client client = sessionManager.getClientByPublicSIDAnyServer(uid).getRcl(); + ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid); + if (csi == null) { + log.warn("No client was found to send Wml:: {}", uid); + return; + } + Client client = csi.getRcl(); if (client == null) { log.warn("No client was found to send Wml:: {}", uid); @@ -181,16 +188,16 @@ public class ConferenceLibrary implement * * Loads a chart object * - * @param SID + * @param sid * @param room_id * @param fileName * @return - chart object */ @SuppressWarnings("rawtypes") - public ArrayList loadChartObject(String SID, Long room_id, String fileName) { + public ArrayList loadChartObject(String sid, Long room_id, String fileName) { try { - Long users_id = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { return LibraryChartLoader.getInstance().loadChart(OmFileHelper.getUploadRoomDir(room_id.toString()), fileName); } } catch (Exception err) { @@ -200,15 +207,14 @@ public class ConferenceLibrary implement } /** - * @param SID + * @param sid * @param flvFileExplorerId * @return 1 in case of success, -1 otherwise */ - public Long copyFileToCurrentRoom(String SID, Long flvFileExplorerId) { + public Long copyFileToCurrentRoom(String sid, Long flvFileExplorerId) { try { - Long users_id = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); 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=1755553&r1=1755552&r2=1755553&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 Tue Aug 9 03:17:22 2016 @@ -37,6 +37,7 @@ import org.apache.openmeetings.db.entity import org.apache.openmeetings.db.entity.room.Client; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.RoomModerator; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.room.RoomGroup; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.red5.logging.Red5LoggerFactory; @@ -54,7 +55,7 @@ public class ConferenceService { @Autowired private AppointmentDao appointmentDao; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private UserDao userDao; @Autowired @@ -66,10 +67,10 @@ public class ConferenceService { @Autowired private ISessionManager sessionManager = null; - public List<RoomGroup> getRoomsByGroupWithoutType(String SID, long groupId) { + public List<RoomGroup> getRoomsByGroupWithoutType(String sid, long groupId) { try { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { log.debug("getRoomsByGroupWithoutType"); List<RoomGroup> roomGroupsList = roomManager.getRoomGroupByGroupId(groupId); @@ -88,16 +89,16 @@ public class ConferenceService { /** * get a List of all public availible rooms (non-appointments) * - * @param SID + * @param sid * @param typeId * @return - public rooms with given type, null in case of the error */ - public List<Room> getRoomsPublic(String SID, Long typeId) { + public List<Room> getRoomsPublic(String sid, Long typeId) { try { log.debug("getRoomsPublic"); - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { List<Room> roomList = roomDao.getPublicRooms(Room.Type.get(typeId)); @@ -121,10 +122,10 @@ public class ConferenceService { return null; } - public List<Room> getRoomsPublicWithoutType(String SID) { + public List<Room> getRoomsPublicWithoutType(String sid) { try { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { List<Room> roomList = roomDao.getPublicRooms(); @@ -155,13 +156,12 @@ public class ConferenceService { // -------------------------------------------------------------------------------------------- - public List<Room> getAppointedMeetingRoomsWithoutType(String SID) { + public List<Room> getAppointedMeetingRoomsWithoutType(String sid) { log.debug("ConferenceService.getAppointedMeetings"); try { - Long userId = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - List<Appointment> appointments = appointmentDao.getForToday(userId); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + List<Appointment> appointments = appointmentDao.getForToday(sd.getUserId()); List<Room> result = new ArrayList<Room>(); if (appointments != null) { @@ -185,10 +185,10 @@ public class ConferenceService { return null; } - public Room getRoomWithCurrentUsersById(String SID, long roomId) { + public Room getRoomWithCurrentUsersById(String sid, long roomId) { Room room = null; - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { room = roomDao.get(roomId); room.setCurrentusers(sessionManager.getClientListByRoom(room.getId())); } @@ -198,37 +198,37 @@ public class ConferenceService { /** * gets a list of all available rooms * - * @param SID + * @param sid * @param start * @param max * @param orderby * @param asc * @return - list of rooms being searched */ - public SearchResult<Room> getRooms(String SID, int start, int max, String orderby, boolean asc, String search) { + public SearchResult<Room> getRooms(String sid, int start, int max, String orderby, boolean asc, String search) { log.debug("getRooms"); - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { return roomManager.getRooms(start, max, orderby, asc, search); } return null; } - public SearchResult<Room> getRoomsWithCurrentUsers(String SID, int start, int max, String orderby, boolean asc) { + public SearchResult<Room> getRoomsWithCurrentUsers(String sid, int start, int max, String orderby, boolean asc) { log.debug("getRooms"); - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { return roomManager.getRoomsWithCurrentUsers(start, max, orderby, asc); } return null; } - public List<RoomModerator> getRoomModeratorsByRoomId(String SID, Long roomId) { + public List<RoomModerator> getRoomModeratorsByRoomId(String sid, Long roomId) { try { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { return roomModeratorDao.getByRoomId(roomId); } } catch (Exception err) { @@ -247,37 +247,37 @@ public class ConferenceService { return sessionManager.getClientListByRoom(roomId); } - public List<Room> getRoomsWithCurrentUsersByList(String SID, int start, int max, String orderby, boolean asc) { + public List<Room> getRoomsWithCurrentUsersByList(String sid, int start, int max, String orderby, boolean asc) { log.debug("getRoomsWithCurrentUsersByList"); - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { return roomManager.getRoomsWithCurrentUsersByList(start, max, orderby, asc); } return null; } - public List<Room> getRoomsWithCurrentUsersByListAndType(String SID, int start, int max, String orderby, boolean asc, String externalType) { + public List<Room> getRoomsWithCurrentUsersByListAndType(String sid, int start, int max, String orderby, boolean asc, String externalType) { log.debug("getRoomsWithCurrentUsersByListAndType"); - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { return roomManager.getRoomsWithCurrentUsersByListAndType(start, max, orderby, asc, externalType); } return null; } - public Room getRoomByOwnerAndType(String SID, Long typeId, String roomName) { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - return roomDao.getUserRoom(userId, Room.Type.get(typeId), roomName); + public Room getRoomByOwnerAndType(String sid, Long typeId, String roomName) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + return roomDao.getUserRoom(sd.getUserId(), Room.Type.get(typeId), roomName); } return null; } - public Room getRoomById(String SID, Long roomId) { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + public Room getRoomById(String sid, Long roomId) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { return roomDao.get(roomId); } return null; Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java Tue Aug 9 03:17:22 2016 @@ -31,6 +31,7 @@ import org.apache.openmeetings.db.entity import org.apache.openmeetings.db.entity.room.Invitation; import org.apache.openmeetings.db.entity.room.Invitation.MessageType; import org.apache.openmeetings.db.entity.room.Invitation.Valid; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.CalendarHelper; @@ -48,7 +49,7 @@ public class InvitationService implement @Autowired private ISessionManager sessionManager; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private UserDao userDao; @Autowired @@ -75,7 +76,7 @@ public class InvitationService implement /** * send an invitation to another user by Mail * - * @param SID + * @param sid * @param firstname * @param lastname * @param message @@ -94,7 +95,7 @@ public class InvitationService implement * @param iCalTz * @return - invitation object in case of success, "Sys - Error" string or null in case of error */ - public Object sendInvitationHash(String SID, String firstname, String lastname, + public Object sendInvitationHash(String sid, String firstname, String lastname, String message, String email, String subject, Long roomId, String conferencedomain, Boolean isPasswordProtected, String invitationpass, Integer valid, String validFromDate, @@ -102,7 +103,8 @@ public class InvitationService implement Long languageId, String iCalTz, boolean sendMail) { try { - Long userId = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { log.debug("sendInvitationHash: "); @@ -141,10 +143,9 @@ public class InvitationService implement return null; } - public String sendInvitationByHash(String SID, String invitationHash, String message, String subject, Long languageId) throws Exception { - Long userId = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + public String sendInvitationByHash(String sid, String invitationHash, String message, String subject, Long languageId) throws Exception { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { Invitation inv = (Invitation)invitationManager.getInvitationByHashCode(invitationHash, false); inv.getInvitee().setLanguageId(languageId); invitationManager.sendInvitationLink(inv, MessageType.Create, subject, message, false); @@ -161,7 +162,7 @@ public class InvitationService implement if (i.isAllowEntry()) { User u = i.getInvitee(); Long userId = -u.getId(); //TODO check this, extremely weird - sessiondataDao.updateUser(SID, userId); + sessionDao.updateUser(SID, userId); IConnection current = Red5.getConnectionLocal(); String streamId = current.getClient().getId(); Client client = sessionManager.getClientByStreamId(streamId, null); Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Tue Aug 9 03:17:22 2016 @@ -78,7 +78,7 @@ public class MainService implements IPen @Autowired private ScopeApplicationAdapter scopeApplicationAdapter; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private ConfigurationDao configurationDao; @Autowired @@ -103,14 +103,14 @@ public class MainService implements IPen /** * gets a user by its SID * - * @param SID + * @param sid * @param userId * @return - user with SID given */ - public User getUser(String SID, long userId) { + public User getUser(String sid, long userId) { User users = new User(); - Long users_id = sessiondataDao.check(SID); - Set<Right> rights = userDao.getRights(users_id); + Sessiondata sd = sessionDao.check(sid); + Set<Right> rights = userDao.getRights(sd.getUserId()); if (AuthLevelUtil.hasAdminLevel(rights) || AuthLevelUtil.hasWebServiceLevel(rights)) { users = userDao.get(userId); } else { @@ -141,12 +141,12 @@ public class MainService implements IPen * @return a unique session identifier */ public Sessiondata getsessiondata() { - return sessiondataDao.create(); + return sessionDao.create(); } public Long setCurrentUserGroup(String SID, Long groupId) { try { - sessiondataDao.updateUserGroup(SID, groupId); + sessionDao.updateUserGroup(SID, groupId); return 1L; } catch (Exception err) { log.error("[setCurrentUserGroup]", err); @@ -204,7 +204,8 @@ public class MainService implements IPen public User loginWicket(String wicketSID, Long wicketroomid) { log.debug("[loginWicket] wicketSID: '{}'; wicketroomid: '{}'", wicketSID, wicketroomid); - Long userId = sessiondataDao.check(wicketSID); + Sessiondata sd = sessionDao.check(wicketSID); + Long userId = sd.getUserId(); User u = userId == null ? null : userDao.get(userId); if (u != null && wicketroomid != null) { log.debug("[loginWicket] user and roomid are not empty: " + userId + ", " + wicketroomid); @@ -214,7 +215,7 @@ public class MainService implements IPen Client currentClient = sessionManager.getClientByStreamId(streamId, null); if (!u.getGroupUsers().isEmpty()) { - u.setSessionData(sessiondataDao.get(wicketSID)); + u.setSessionData(sd); currentClient.setUserId(u.getId()); currentClient.setRoomId(wicketroomid); SessionVariablesUtil.setUserId(current.getClient(), u.getId()); @@ -268,7 +269,7 @@ public class MainService implements IPen Client currentClient = sessionManager.getClientByStreamId(streamId, null); if (currentClient.getUserId() != null) { - sessiondataDao.updateUser(SID, currentClient.getUserId()); + sessionDao.updateUser(SID, currentClient.getUserId()); } currentClient.setAllowRecording(soapLogin.isAllowRecording()); @@ -352,15 +353,14 @@ public class MainService implements IPen * Attention! This SID is NOT the default session id! its the Session id * retrieved in the call from the SOAP Gateway! * - * @param SID + * @param sid * @return - 1 in case of success, -1 otherwise */ - public Long loginUserByRemote(String SID) { + public Long loginUserByRemote(String sid) { try { - Long users_id = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { - Sessiondata sd = sessiondataDao.get(SID); - if (sd == null || sd.getXml() == null) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + if (sd.getXml() == null) { return -37L; } else { RemoteSessionObject userObject = RemoteSessionObject.fromXml(sd.getXml()); @@ -404,7 +404,7 @@ public class MainService implements IPen } else { user.setPictureuri(userObject.getPictureUrl()); - userDao.update(user, users_id); + userDao.update(user, sd.getUserId()); currentClient.setUserId(user.getId()); SessionVariablesUtil.setUserId(current.getClient(), user.getId()); @@ -420,7 +420,7 @@ public class MainService implements IPen log.debug("UPDATE USER BY STREAMID " + streamId); if (currentClient.getUserId() != null) { - sessiondataDao.updateUser(SID, currentClient.getUserId()); + sessionDao.updateUser(sid, currentClient.getUserId()); } sessionManager.updateClientByStreamId(streamId, currentClient, false, null); @@ -437,12 +437,12 @@ public class MainService implements IPen /** * clear this session id * - * @param SID + * @param sid * @return string value if completed */ - public Long logoutUser(String SID) { + public Long logoutUser(String sid) { try { - Long users_id = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); IConnection current = Red5.getConnectionLocal(); Client currentClient = sessionManager.getClientByStreamId(current.getClient().getId(), null); @@ -450,7 +450,7 @@ public class MainService implements IPen currentClient.setUserObject(null, null, null, null); - return userManager.logout(SID, users_id); + return userManager.logout(sid, sd.getUserId()); } catch (Exception err) { log.error("[logoutUser]",err); } @@ -466,10 +466,10 @@ public class MainService implements IPen return null; } - public List<Userdata> getUserdata(String SID) { - Long users_id = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { - return userManager.getUserdataDashBoard(users_id); + public List<Userdata> getUserdata(String sid) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + return userManager.getUserdataDashBoard(sd.getUserId()); } return null; } Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/UserService.java Tue Aug 9 03:17:22 2016 @@ -33,6 +33,7 @@ import org.apache.openmeetings.db.dao.us import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.room.Client; import org.apache.openmeetings.db.entity.server.Server; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.wicket.Application; @@ -55,7 +56,7 @@ public class UserService implements IUse @Autowired private ScopeApplicationAdapter scopeApplicationAdapter; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private UserDao userDao; @Autowired @@ -66,13 +67,13 @@ public class UserService implements IUse /** * get user by id, admin only * - * @param SID + * @param sid * @param userId * @return User with the id given */ - public User getUserById(String SID, long userId) { - Long authUserId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(authUserId))) { + public User getUserById(String sid, long userId) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { return userDao.get(userId); } return null; @@ -86,7 +87,7 @@ public class UserService implements IUse */ public String refreshSession(String SID) { try { - sessiondataDao.check(SID); + sessionDao.check(SID); return "ok"; } catch (Exception err) { log.error("[refreshSession]", err); @@ -97,15 +98,15 @@ public class UserService implements IUse /** * gets a whole user-list(admin-role only) * - * @param SID + * @param sid * @param start * @param max * @param orderby * @return whole user-list */ - public List<User> getUserList(String SID, int start, int max, String orderby, boolean asc) { - Long userId = sessiondataDao.check(SID); - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + public List<User> getUserList(String sid, int start, int max, String orderby, boolean asc) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { return userDao.get("", start, max, orderby + (asc ? " ASC" : " DESC")); } return null; @@ -115,7 +116,7 @@ public class UserService implements IUse * kicks a user from the server, also from slaves if needed, this method is * only invoked by the connection administration UI * - * @param SID + * @param sid * @param streamid * @param serverId * 0 means the session is locally, otherwise we have to perform a @@ -123,11 +124,11 @@ public class UserService implements IUse * @return - true if user has sufficient permissions, false otherwise */ @Override - public boolean kickUserByStreamId(String SID, String streamid, long serverId) { + public boolean kickUserByStreamId(String sid, String streamid, long serverId) { try { - Long userId = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); // admins only - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { if (serverId == 0) { Client rcl = sessionManager.getClientByStreamId(streamid, null); @@ -173,15 +174,15 @@ public class UserService implements IUse * invoked from inside the conference room, that means all clients are on the * same server, no matter if clustered or not. * - * @param SID + * @param sid * @param publicSID * @return - true in case user have sufficient permissions, null otherwise */ - public boolean kickUserByPublicSID(String SID, String publicSID) { + public boolean kickUserByPublicSID(String sid, String publicSID) { try { - Long userId = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); // users only - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); if (rcl == null) { @@ -208,11 +209,11 @@ public class UserService implements IUse } @Override - public boolean kickUserBySessionId(String SID, long userId, String sessionId) { + public boolean kickUserBySessionId(String sid, long userId, String sessionId) { try { - Long users_id = sessiondataDao.check(SID); + Sessiondata sd = sessionDao.check(sid); // admin only - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) { + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { ((IApplication)Application.get(wicketApplicationName)).invalidateClient(userId, sessionId); return true; } Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java (original) +++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/WhiteBoardService.java Tue Aug 9 03:17:22 2016 @@ -41,6 +41,7 @@ import org.apache.openmeetings.db.dto.ro import org.apache.openmeetings.db.dto.room.WhiteboardObjectList; import org.apache.openmeetings.db.dto.room.WhiteboardSyncLockObject; import org.apache.openmeetings.db.entity.room.Client; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.OmFileHelper; import org.red5.logging.Red5LoggerFactory; @@ -70,7 +71,7 @@ public class WhiteBoardService implement @Autowired private WhiteBoardObjectListManagerById wbListManagerById; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; public Long getNewWhiteboardId() { try { @@ -142,20 +143,19 @@ public class WhiteBoardService implement * besides the Moderator to draw on the whiteboard, only a Moderator is * allowed to trigger this function * - * @param SID + * @param sid * @param publicSID * @param canDraw * @return null in case of success, false otherwise */ - public boolean setCanDraw(String SID, String publicSID, boolean canDraw) { + public boolean setCanDraw(String sid, String publicSID, boolean canDraw) { try { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); Client currentClient = sessionManager.getClientByStreamId(streamid, null); - Long users_id = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { if (currentClient.getIsMod()) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); @@ -177,15 +177,14 @@ public class WhiteBoardService implement return false; } - public boolean setCanShare(String SID, String publicSID, boolean canShare) { + public boolean setCanShare(String sid, String publicSID, boolean canShare) { try { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); Client currentClient = sessionManager.getClientByStreamId(streamid, null); - Long users_id = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { if (currentClient.getIsMod()) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); @@ -207,15 +206,14 @@ public class WhiteBoardService implement return false; } - public boolean setCanRemote(String SID, String publicSID, boolean canRemote) { + public boolean setCanRemote(String sid, String publicSID, boolean canRemote) { try { IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); Client currentClient = sessionManager.getClientByStreamId(streamid, null); - Long userId = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { if (currentClient.getIsMod()) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); @@ -237,16 +235,15 @@ public class WhiteBoardService implement return false; } - public boolean setCanGiveAudio(String SID, String publicSID, boolean canGiveAudio) { + public boolean setCanGiveAudio(String sid, String publicSID, boolean canGiveAudio) { try { - log.debug("[setCanGiveAudio] " + SID + ", " + publicSID + ", " + canGiveAudio); + log.debug("[setCanGiveAudio] " + sid + ", " + publicSID + ", " + canGiveAudio); IConnection current = Red5.getConnectionLocal(); String streamid = current.getClient().getId(); Client currentClient = sessionManager.getClientByStreamId(streamid, null); - Long users_id = sessiondataDao.check(SID); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(users_id))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { if (currentClient.getIsMod()) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); 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=1755553&r1=1755552&r2=1755553&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 Tue Aug 9 03:17:22 2016 @@ -52,6 +52,7 @@ 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.dto.server.ClientSessionInfo; import org.apache.openmeetings.db.entity.file.FileItem; import org.apache.openmeetings.db.entity.log.ConferenceLog; import org.apache.openmeetings.db.entity.room.Client; @@ -1438,7 +1439,12 @@ public class ScopeApplicationAdapter ext } public void sendToWhiteboard(String uid, Long wbId, FileItem fi, String url) { - Client client = sessionManager.getClientByPublicSIDAnyServer(uid).getRcl(); + ClientSessionInfo csi = sessionManager.getClientByPublicSIDAnyServer(uid); + if (csi == null) { + log.warn("No client was found to send Wml:: {}", uid); + return; + } + Client client = csi.getRcl(); List<?> wbObject = new ArrayList<>(); switch (fi.getType()) { Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java Tue Aug 9 03:17:22 2016 @@ -120,7 +120,7 @@ public class LabelDao implements IDataPr return new File(OmFileHelper.getLanguagesDir(), OmFileHelper.nameOfLanguageFile); } - public static Class<?> getAppClass() throws ClassNotFoundException { + public static synchronized Class<?> getAppClass() throws ClassNotFoundException { if (APP == null) { //FIXME HACK to resolve package dependencies APP = Class.forName("org.apache.openmeetings.web.app.Application"); Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java Tue Aug 9 03:17:22 2016 @@ -49,12 +49,7 @@ public class SessiondataDao { @Autowired private ISessionManager sessionManager; - /** - * creates a new session-object in the database - * - * @return - */ - public Sessiondata create() { + private static Sessiondata newInstance() { log.debug("startsession :: startsession"); Sessiondata sd = new Sessiondata(); @@ -62,28 +57,17 @@ public class SessiondataDao { sd.setCreated(new Date()); sd.setUserId(null); - return update(sd); + return sd; } - - public Sessiondata get(String SID) { - try { - log.debug("updateUser User SID: " + SID); - - TypedQuery<Sessiondata> q = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID); - - List<Sessiondata> fullList = q.getResultList(); - if (fullList.size() == 0) { - log.error("Could not find session to update: " + SID); - return null; - } - - Sessiondata sd = fullList.get(0); - - return sd; - } catch (Exception ex2) { - log.error("[getSessionByHash]: ", ex2); - } - return null; + + /** + * creates a new session-object in the database + * + * @return created Sessiondata with random UID + */ + public Sessiondata create() { + log.debug("create :: create"); + return update(newInstance()); } /** @@ -91,32 +75,20 @@ public class SessiondataDao { * @param SID * @return */ - public Long check(String SID) { - try { - TypedQuery<Sessiondata> query = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID); - List<Sessiondata> sessions = query.getResultList(); - - Sessiondata sd = null; - if (sessions != null && sessions.size() > 0) { - sd = sessions.get(0); - } + public Sessiondata check(String SID) { + List<Sessiondata> sessions = em.createNamedQuery("getSessionById", Sessiondata.class).setParameter("sessionId", SID).getResultList(); - // Update the Session Object - if (sd != null) { - update(sd); - } + Sessiondata sd = null; + if (sessions != null && sessions.size() > 0) { + sd = sessions.get(0); + } - // Checks if wether the Session or the User Object of that Session - // is set yet - if (sd == null || sd.getUserId() == null || sd.getUserId().equals(new Long(0))) { - return new Long(0); - } else { - return sd.getUserId(); - } - } catch (Exception ex2) { - log.error("[checkSession]: ", ex2); + // Checks if wether the Session or the User Object of that Session + // is set yet + if (sd == null || sd.getUserId() == null || sd.getUserId().equals(new Long(0))) { + return newInstance(); } - return null; + return update(sd); } /** @@ -288,7 +260,7 @@ public class SessiondataDao { } String SID = aux.substring(init_pos, end_pos); - Sessiondata sData = get(SID); + Sessiondata sData = check(SID); if (sData != null) { em.remove(sData); } Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original) +++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Tue Aug 9 03:17:22 2016 @@ -685,8 +685,10 @@ public class UserDao implements IDataPro } u.setDeleted(false); u.setPictureuri(pictureuri); - for (Long grpId : groupIds) { - u.getGroupUsers().add(new GroupUser(groupDao.get(grpId), u)); + if (groupIds != null) { + for (Long grpId : groupIds) { + u.getGroupUsers().add(new GroupUser(groupDao.get(grpId), u)); + } } return update(u, null); 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=1755553&r1=1755552&r2=1755553&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 Tue Aug 9 03:17:22 2016 @@ -657,31 +657,30 @@ public class CoreScreenShare implements String method = call.getServiceMethodName(); Object o = call.getResult(); + if (log.isTraceEnabled()) { + log.trace("Result Map Type " + (o == null ? null : o.getClass().getName())); + log.trace("" + o); + } + @SuppressWarnings("unchecked") + Map<String, Object> returnMap = (o != null && o instanceof Map) ? (Map<String, Object>) o : new HashMap<String, Object>(); log.trace("call ### get Method Name " + method); if ("connect".equals(method)) { - if (o instanceof Map) { - @SuppressWarnings("unchecked") - Map<String, Object> map = (Map<String, Object>) o; - Object code = map.get("code"); - if ("NetConnection.Connect.Rejected".equals(code) || "NetConnection.Connect.Failed".equals(code)) { - frame.setStatus(String.format("Error: %s %s", code, map.get("description"))); - return; - } + Object code = returnMap.get("code"); + if ("NetConnection.Connect.Rejected".equals(code) || "NetConnection.Connect.Failed".equals(code)) { + frame.setStatus(String.format("Error: %s %s", code, returnMap.get("description"))); + return; } isConnected = true; setConnectionAsSharingClient(); } else if ("setConnectionAsSharingClient".equals(method)) { - @SuppressWarnings("unchecked") - Map<String, Object> returnMap = (Map<String, Object>) o; - - if (o == null || !bool(returnMap.get("alreadyPublished"))) { + if (!bool(returnMap.get("alreadyPublished"))) { log.trace("Stream not yet started - do it "); instance.createStream(this); } else { log.trace("The Stream was already started "); } - if (returnMap != null) { + if (o != null) { Object modus = returnMap.get("modus"); if ("startStreaming".equals(modus)) { frame.setSharingStatus(true, false); @@ -703,8 +702,8 @@ public class CoreScreenShare implements } } else if ("createStream".equals(method)) { if (startRecording || startStreaming) { - if (call.getResult() != null) { - getCapture().setStreamId((Number)call.getResult()); + if (o != null && o instanceof Number) { + getCapture().setStreamId((Number)o); } log.debug("createPublishStream result stream id: {}; name: {}", getCapture().getStreamId(), publishName); instance.publish(getCapture().getStreamId(), publishName, "live", this); @@ -717,13 +716,6 @@ public class CoreScreenShare implements } } } else if ("screenSharerAction".equals(method)) { - if (log.isTraceEnabled()) { - log.trace("Result Map Type " + (o == null ? null : o.getClass().getName())); - log.trace("" + o); - } - - @SuppressWarnings("unchecked") - Map<String, Object> returnMap = (Map<String, Object>)o; Object result = returnMap.get("result"); if ("stopAll".equals(result)) { log.trace("Stopping to stream, there is neither a Desktop Sharing nor Recording anymore"); Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java (original) +++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java Tue Aug 9 03:17:22 2016 @@ -84,7 +84,7 @@ public class UserManager implements IUse private EntityManager em; @Autowired - private SessiondataDao sessiondataDao; + private SessiondataDao sessionDao; @Autowired private ConfigurationDao cfgDao; @Autowired @@ -143,14 +143,13 @@ public class UserManager implements IUse public User loginUserByRemoteHash(String SID, String remoteHash) { try { - Sessiondata sessionData = sessiondataDao - .get(remoteHash); + Sessiondata sessionData = sessionDao.check(remoteHash); if (sessionData != null) { User u = userDao.get(sessionData.getUserId()); - sessiondataDao.updateUserWithoutSession(SID, u.getId()); + sessionDao.updateUserWithoutSession(SID, u.getId()); return u; } @@ -163,7 +162,7 @@ public class UserManager implements IUse @Override public Long logout(String SID, long userId) { - sessiondataDao.updateUser(SID, null, false, 0); + sessionDao.updateUser(SID, null, false, 0); return -12L; } @@ -412,19 +411,18 @@ public class UserManager implements IUse } /** - * @param admin + * @param sid * @param room_id * @return */ @Override - public boolean kickUserByStreamId(String SID, Long room_id) { + public boolean kickUserByStreamId(String sid, Long room_id) { try { - Long users_id = sessiondataDao.check(SID); - + Sessiondata sd = sessionDao.check(sid); // admins only - if (AuthLevelUtil.hasAdminLevel(userDao.getRights(users_id))) { + if (AuthLevelUtil.hasAdminLevel(userDao.getRights(sd.getUserId()))) { - sessiondataDao.clearSessionByRoomId(room_id); + sessionDao.clearSessionByRoomId(room_id); for (Client rcl : sessionManager.getClientListByRoom(room_id)) { if (rcl == null) { @@ -450,12 +448,11 @@ public class UserManager implements IUse } @Override - public boolean kickUserByPublicSID(String SID, String publicSID) { + public boolean kickUserByPublicSID(String sid, String publicSID) { try { - Long userId = sessiondataDao.check(SID); - + Sessiondata sd = sessionDao.check(sid); // admins only - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { Client rcl = sessionManager.getClientByPublicSID(publicSID, null); if (rcl == null) { 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=1755553&r1=1755552&r2=1755553&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 Tue Aug 9 03:17:22 2016 @@ -219,9 +219,12 @@ public class Application extends Authent @Override public org.apache.openmeetings.db.entity.room.Client updateClient(org.apache.openmeetings.db.entity.room.Client rcl) { + if (rcl == null) { + return null; + } Client client = getOnlineClient(rcl.getPublicSID()); - if (rcl == null || client == null) { - return rcl; + if (client == null) { + return null; } rcl.setIsSuperModerator(client.hasRight(Right.superModerator)); rcl.setIsMod(client.hasRight(Right.moderator)); Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original) +++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Tue Aug 9 03:17:22 2016 @@ -202,8 +202,8 @@ public class WebSession extends Abstract } if (!soapLogin.isUsed() || soapLogin.getAllowSameURLMultipleTimes()) { SessiondataDao sessionDao = getBean(SessiondataDao.class); - Sessiondata sd = sessionDao.get(soapLogin.getSessionHash()); - if (sd != null && sd.getXml() != null) { + Sessiondata sd = sessionDao.check(soapLogin.getSessionHash()); + if (sd.getXml() != null) { RemoteSessionObject remoteUser = RemoteSessionObject.fromXml(sd.getXml()); if (remoteUser != null && !Strings.isEmpty(remoteUser.getExternalUserId())) { UserDao userDao = getBean(UserDao.class); @@ -330,17 +330,16 @@ public class WebSession extends Abstract public String getValidatedSid() { SessiondataDao sessionDao = getBean(SessiondataDao.class); - Long _userId = sessionDao.check(SID); - if (_userId == null || !_userId.equals(userId)) { - Sessiondata sessionData = sessionDao.get(SID); - if (sessionData == null) { - sessionData = sessionDao.create(); + Sessiondata sd = sessionDao.check(SID); + if (sd.getUserId() == null || !sd.getUserId().equals(userId)) { + if (sd.getId() == null) { + sd = sessionDao.create(); } - if (!sessionDao.updateUser(sessionData.getSessionId(), userId, false, languageId)) { + if (!sessionDao.updateUser(sd.getSessionId(), userId, false, languageId)) { //something bad, force user to re-login invalidate(); } else { - SID = sessionData.getSessionId(); + SID = sd.getSessionId(); } } return SID; Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java (original) +++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java Tue Aug 9 03:17:22 2016 @@ -43,6 +43,7 @@ import org.apache.openmeetings.db.dao.se import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.calendar.AppointmentDTO; import org.apache.openmeetings.db.entity.calendar.Appointment; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.webservice.error.ServiceException; @@ -92,9 +93,9 @@ public class CalendarWebService { { log.debug("range : startdate - " + start.getTime() + ", enddate - " + end.getTime()); try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - return AppointmentDTO.list(appointmentDao.getInRange(userId, start.getTime(), end.getTime())); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + return AppointmentDTO.list(appointmentDao.getInRange(sd.getUserId(), start.getTime(), end.getTime())); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 } @@ -132,8 +133,8 @@ public class CalendarWebService { { log.debug("rangeForUser : startdate - " + start.getTime() + ", enddate - " + end.getTime()); try { - Long authUserId = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return AppointmentDTO.list(appointmentDao.getInRange(userid, start.getTime(), end.getTime())); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 @@ -158,9 +159,9 @@ public class CalendarWebService { @Path("/next") public AppointmentDTO next(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException { try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - Appointment a = appointmentDao.getNext(userId, new Date()); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + Appointment a = appointmentDao.getNext(sd.getUserId(), new Date()); return a == null ? null : new AppointmentDTO(a); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 @@ -188,8 +189,8 @@ public class CalendarWebService { @Path("/next/{userid}") public AppointmentDTO nextForUser(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("userid") @WebParam(name="userid") long userid) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { Appointment a = appointmentDao.getNext(userid, new Date()); return a == null ? null : new AppointmentDTO(a); } else { @@ -216,9 +217,9 @@ public class CalendarWebService { @Path("/room/{roomid}") public AppointmentDTO getByRoom(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("roomid") @WebParam(name="roomid") long roomid) throws ServiceException { try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - Appointment app = appointmentDao.getByRoom(userId, roomid); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + Appointment app = appointmentDao.getByRoom(sd.getUserId(), roomid); if (app != null) { return new AppointmentDTO(app); } @@ -249,9 +250,9 @@ public class CalendarWebService { @Path("/title/{title}") public List<AppointmentDTO> getByTitle(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("title") @WebParam(name="title") String title) throws ServiceException { try { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { - return AppointmentDTO.list(appointmentDao.searchAppointmentsByTitle(userId, title)); + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { + return AppointmentDTO.list(appointmentDao.searchAppointmentsByTitle(sd.getUserId(), title)); } else { throw new ServiceException("Insufficient permissions"); //TODO code -26 } @@ -281,12 +282,12 @@ public class CalendarWebService { log.debug("save SID:" + sid); try { - Long userId = sessionDao.check(sid); - log.debug("save userId:" + userId); + Sessiondata sd = sessionDao.check(sid); + log.debug("save userId:" + sd); - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { Appointment a = appointment.get(userDao, appointmentDao); - return new AppointmentDTO(appointmentDao.update(a, userId)); + return new AppointmentDTO(appointmentDao.update(a, sd.getUserId())); } else { log.error("save : wrong user level"); throw new ServiceException("Insufficient permissions"); //TODO code -26 @@ -318,21 +319,21 @@ public class CalendarWebService { @Path("/{id}") public void delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException { try { - Long userId = sessionDao.check(sid); - Set<Right> rights = userDao.getRights(userId); + Sessiondata sd = sessionDao.check(sid); + Set<Right> rights = userDao.getRights(sd.getUserId()); Appointment a = appointmentDao.get(id); if (AuthLevelUtil.hasWebServiceLevel(rights) || AuthLevelUtil.hasAdminLevel(rights)) { // fine } else if (AuthLevelUtil.hasUserLevel(rights)) { // check if the appointment belongs to the current user - if (!a.getOwner().getId().equals(userId)) { + if (!a.getOwner().getId().equals(sd.getUserId())) { throw new ServiceException("The Appointment cannot be updated by the given user"); } } else { throw new ServiceException("Not allowed to preform that action, Authenticate the SID first"); } - appointmentDao.delete(a, userId); + appointmentDao.delete(a, sd.getUserId()); } catch (ServiceException err) { throw err; } catch (Exception err) { Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java (original) +++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java Tue Aug 9 03:17:22 2016 @@ -38,6 +38,7 @@ import org.apache.openmeetings.db.dao.la import org.apache.openmeetings.db.dao.server.SessiondataDao; import org.apache.openmeetings.db.dto.basic.ServiceResult; import org.apache.openmeetings.db.entity.basic.ErrorValue; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.red5.logging.Red5LoggerFactory; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -105,11 +106,11 @@ public class ErrorWebService { @POST @Path("/report/") public void report(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="message") @QueryParam("message") String message) { - if (sid != null && message != null) { - Long userId = sessionDao.check(sid); - if (userId != null && userId != 0) { - log.error("[CLIENT MESSAGE] " + message); - } - } + if (sid != null && message != null) { + Sessiondata sd = sessionDao.check(sid); + if (sd.getId() != null) { + log.error("[CLIENT MESSAGE] " + message); + } + } } } Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original) +++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Tue Aug 9 03:17:22 2016 @@ -54,6 +54,7 @@ import org.apache.openmeetings.db.dto.fi import org.apache.openmeetings.db.dto.file.FileExplorerObject; import org.apache.openmeetings.db.dto.file.LibraryPresentation; import org.apache.openmeetings.db.entity.file.FileExplorerItem; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.util.OmFileHelper; @@ -103,12 +104,13 @@ public class FileWebService { @Path("/{id}") public ServiceResult delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); FileExplorerItem f = fileDao.get(id); if (f == null) { return new ServiceResult(-1L, "Bad id", Type.ERROR); } + Long userId = sd.getUserId(); Set<Right> rights = userDao.getRights(userId); if (AuthLevelUtil.hasWebServiceLevel(rights) || (AuthLevelUtil.hasUserLevel(rights) && userId.equals(f.getOwnerId()))) @@ -145,9 +147,9 @@ public class FileWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { FileExplorerItem f = fileDao.get(externalId, externalType); fileDao.delete(f); return new ServiceResult(f.getId(), "Deleted", Type.SUCCESS); @@ -181,7 +183,8 @@ public class FileWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); FileExplorerItem f = file == null ? null : file.get(); if (f == null || f.getId() != null) { @@ -219,20 +222,19 @@ public class FileWebService { /** * Get a LibraryPresentation-Object for a certain file * - * @param SID + * @param sid + * The SID of the User. This SID must be marked as logged in * @param parentFolder * * @return - LibraryPresentation-Object for a certain file * @throws ServiceException */ - public LibraryPresentation getPresentationPreviewFileExplorer(String SID, String parentFolder) + public LibraryPresentation getPresentationPreviewFileExplorer(String sid, String parentFolder) throws ServiceException { try { - - Long userId = sessionDao.check(SID); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { File working_dir = new File(OmFileHelper.getUploadProfilesDir(), parentFolder); log.debug("############# working_dir : " + working_dir); @@ -269,7 +271,7 @@ public class FileWebService { * * @param sid * The SID of the User. This SID must be marked as logged in - * @param id + * @param roomId * Room Id * @return - File Explorer Object by a given Room * @throws ServiceException @@ -282,7 +284,8 @@ public class FileWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { log.debug("roomId " + roomId); @@ -331,7 +334,8 @@ public class FileWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { log.debug("getRoomByParent " + parentId); @@ -379,9 +383,8 @@ public class FileWebService { , @WebParam(name="name") @PathParam("name") String name) throws ServiceException { try { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) { // FIXME TODO: check if this user is allowed to change this file log.debug("rename " + id); @@ -419,7 +422,8 @@ public class FileWebService { , @WebParam(name="parentid") @PathParam("parentid") long parentId) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) { // FIXME TODO A test is required that checks if the user is allowed to move the file log.debug("move " + id); Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original) +++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Tue Aug 9 03:17:22 2016 @@ -49,6 +49,7 @@ import org.apache.openmeetings.db.dto.ba import org.apache.openmeetings.db.dto.user.UserSearchResult; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.RoomGroup; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.Group; import org.apache.openmeetings.db.entity.user.GroupUser; import org.apache.openmeetings.db.entity.user.User; @@ -97,7 +98,8 @@ public class GroupWebService { @POST @Path("/") public ServiceResult add(@QueryParam("sid") @WebParam(name="sid") String sid, @QueryParam("name") @WebParam(name="name") String name) throws ServiceException { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { Group o = new Group(); o.setName(name); @@ -119,8 +121,8 @@ public class GroupWebService { @GET @Path("/") public List<Group> get(@QueryParam("sid") @WebParam(name="sid") String sid) throws ServiceException { - Long userId = sessionDao.check(sid); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return groupDao.get(0, Integer.MAX_VALUE); } else { log.error("Insufficient permissions"); @@ -149,7 +151,8 @@ public class GroupWebService { ) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long authUserId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { if (!groupUserDao.isUserInGroup(id, userid)) { User u = userDao.get(userid); @@ -187,7 +190,8 @@ public class GroupWebService { ) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long authUserId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) { if (groupUserDao.isUserInGroup(id, userid)) { User u = userDao.get(userid); @@ -227,7 +231,8 @@ public class GroupWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long userId = sd.getUserId(); if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { Room r = roomDao.get(roomid); if (r != null) { @@ -285,10 +290,10 @@ public class GroupWebService { ) throws ServiceException { try { - Long userId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); SearchResult<User> result = new SearchResult<User>(); result.setObjectName(User.class.getName()); - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { result.setRecords(groupUserDao.count(id)); result.setResult(new ArrayList<User>()); for (GroupUser ou : groupUserDao.get(id, null, start, max, orderby + " " + (asc ? "ASC" : "DESC"))) { @@ -320,7 +325,8 @@ public class GroupWebService { @Path("/{id}") public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") String sid, @WebParam(name="id") @PathParam("id") long id) throws ServiceException { try { - Long authUserId = sessionDao.check(sid); + Sessiondata sd = sessionDao.check(sid); + Long authUserId = sd.getUserId(); if (AuthLevelUtil.hasAdminLevel(userDao.getRights(authUserId))) { groupDao.delete(groupDao.get(id), authUserId); Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java?rev=1755553&r1=1755552&r2=1755553&view=diff ============================================================================== --- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java (original) +++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java Tue Aug 9 03:17:22 2016 @@ -39,6 +39,7 @@ import org.apache.openmeetings.db.dao.re import org.apache.openmeetings.db.dao.server.SessiondataDao; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.record.RecordingDTO; +import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.util.AuthLevelUtil; import org.apache.openmeetings.webservice.error.ServiceException; import org.red5.logging.Red5LoggerFactory; @@ -79,9 +80,8 @@ public class RecordingWebService { @Path("/{id}") public void delete(@QueryParam("sid") @WebParam(name="sid") String sid, @PathParam("id") @WebParam(name="id") Long id) throws ServiceException { try { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { recordingDao.delete(recordingDao.get(id)); } else { throw new ServiceException("Not allowed to preform that action, Authenticate the SID first"); @@ -111,9 +111,8 @@ public class RecordingWebService { , @PathParam("externaltype") @WebParam(name="externaltype") String externalType , @PathParam("externalid") @WebParam(name="externalid") String externalId) throws ServiceException { try { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return RecordingDTO.list(recordingDao.getByExternalId(externalId, externalType)); } else { throw new ServiceException("Not allowed to preform that action, Authenticate the SID first"); @@ -142,9 +141,8 @@ public class RecordingWebService { public List<RecordingDTO> getExternalByType(@WebParam(name="sid") @QueryParam("sid") String sid , @PathParam("externaltype") @WebParam(name="externaltype") String externalType) throws ServiceException { try { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return RecordingDTO.list(recordingDao.getByExternalType(externalType)); } else { throw new ServiceException("Not allowed to preform that action, Authenticate the SID first"); @@ -173,9 +171,8 @@ public class RecordingWebService { public List<RecordingDTO> getExternalByRoom(@WebParam(name="sid") @QueryParam("sid") String sid , @PathParam("roomid") @WebParam(name="roomid") Long roomId) throws ServiceException { try { - Long userId = sessionDao.check(sid); - - if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) { + Sessiondata sd = sessionDao.check(sid); + if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { return RecordingDTO.list(recordingDao.getByRoomId(roomId)); } else { throw new ServiceException("Not allowed to preform that action, Authenticate the SID first");
