You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/11/30 03:09:19 UTC

svn commit: r1717152 [2/2] - in /openmeetings: branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/ branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/servlet/outputhandler/ branches/3.1.x/open...

Modified: openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java?rev=1717152&r1=1717151&r2=1717152&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileUtils.java Mon Nov 30 02:09:18 2015
@@ -83,24 +83,6 @@ public class FileUtils {
 		return 0;
 	}
 
-	public void setFileToOwnerOrRoomByParent(FileExplorerItem file, Long userId, Long roomId) {
-		try {
-			file.setOwnerId(userId);
-			file.setRoomId(roomId);
-
-			log.debug("calling [2] FileExplorerItemDaoImpl.updateFileOrFolder()");
-			fileExplorerItemDao.update(file);
-
-			List<FileExplorerItem> childElements = fileExplorerItemDao.getByParent(file.getId());
-
-			for (FileExplorerItem childExplorerItem : childElements) {
-				setFileToOwnerOrRoomByParent(childExplorerItem, userId, roomId);
-			}
-		} catch (Exception err) {
-			log.error("[setFileToOwnerOrRoomByParent] ", err);
-		}
-	}
-
 	public String formatDate(Date date) {
 		SimpleDateFormat formatter;
 		String pattern = "dd/MM/yy H:mm:ss";

Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java?rev=1717152&r1=1717151&r2=1717152&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileExplorerItemDao.java Mon Nov 30 02:09:18 2015
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.dao.file;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
 import java.util.Date;
 import java.util.List;
 
@@ -28,9 +30,6 @@ import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.file.FileExplorerItem;
 import org.apache.openmeetings.db.entity.file.FileItem.Type;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.transaction.annotation.Transactional;
@@ -226,44 +225,46 @@ public class FileExplorerItemDao {
 		return f;
 	}
 
+	private void updateChilds(FileExplorerItem f) {
+		for (FileExplorerItem child : getByParent(f.getId())) {
+			child.setOwnerId(f.getOwnerId());
+			child.setRoomId(f.getRoomId());
+			update(child);
+			if (Type.Folder == f.getType()) {
+				updateChilds(child);
+			}
+		}
+	}
+
 	/**
-	 * @param fileId
+	 * @param id
 	 * @param newParentFileExplorerItemId
 	 * @param isOwner
 	 */
-	public void moveFile(Long fileId, Long parentId, Long roomId, Boolean isOwner, Long ownerId) {
-		log.debug(".moveFile() started");
-		try {
+	public FileExplorerItem move(long id, long parentId, long ownerId, long roomId) {
+		log.debug(".move() started");
 
-			FileExplorerItem fId = get(fileId);
-
-			fId.setParentId(parentId);
-
-			if (parentId == 0) {
-				if (isOwner) {
-					// move to personal Folder
-					fId.setOwnerId(ownerId);
-				} else {
-					// move to public room folder
-					fId.setOwnerId(null);
-					fId.setRoomId(roomId);
-				}
-			} else {
-				fId.setOwnerId(null);
-			}
-
-			fId.setUpdated(new Date());
+		FileExplorerItem f = get(id);
 
-			if (fId.getId() == null) {
-				em.persist(fId);
+		if (parentId < 0) {
+			if (parentId == -1) {
+				// move to personal Folder
+				f.setOwnerId(ownerId);
+				f.setRoomId(null);
 			} else {
-				if (!em.contains(fId)) {
-					em.merge(fId);
-				}
+				// move to public room folder
+				f.setOwnerId(null);
+				f.setRoomId(roomId);
 			}
-		} catch (Exception ex2) {
-			log.error("[updateFileOrFolderName]: ", ex2);
+			f.setParentId(null);
+		} else {
+			f.setParentId(parentId);
+			f.setOwnerId(null);
 		}
+		if (Type.Folder == f.getType()) {
+			updateChilds(f);
+		}
+		return update(f);
 	}
 
 }

Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1717152&r1=1717151&r2=1717152&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Mon Nov 30 02:09:18 2015
@@ -357,7 +357,7 @@ public class FileWebService {
 	 *            file or folder id
 	 * @param name
 	 *            new file or folder name
-	 * @return - null
+	 * @return - resulting file object
 	 * @throws ServiceException
 	 */
 	@WebMethod
@@ -392,51 +392,36 @@ public class FileWebService {
 	 * 
 	 * @param sid
 	 *            SID The SID of the User. This SID must be marked as logged in
-	 * @param fileId
+	 * @param id
 	 *            current file or folder id to be moved
-	 * @param newParentId
+	 * @param parentId
 	 *            new parent folder id
-	 * @param roomId
-	 *            room id
-	 * @param isOwner
-	 *            if true owner id will be set
-	 * @param moveToHome
-	 *            move to private drive
-	 * @return - null
+	 * @return - resulting file object
 	 * @throws ServiceException
 	 */
-	public Long move(String sid, Long fileId, Long newParentId, Long roomId, Boolean isOwner,
-			Boolean moveToHome) throws ServiceException {
-
+	@WebMethod
+	@POST
+	@Path("/move/{roomid}/{id}/{parentid}")
+	public FileExplorerItemDTO move(@WebParam(name="sid") @QueryParam("sid") String sid
+			, @WebParam(name="id") @PathParam("id") long id
+			, @WebParam(name="roomid") @PathParam("roomid") long roomId
+			, @WebParam(name="parentid") @PathParam("parentid") long parentId) throws ServiceException
+	{
 		try {
-
 			Long userId = sessionDao.checkSession(sid);
-
 			if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
-
-				// A test is required that checks if the user is allowed to move the file
-
-				log.debug("moveFileSelf " + fileId);
-
-				fileDao.moveFile(fileId, newParentId, roomId, isOwner, userId);
-
-				FileExplorerItem fileExplorerItem = fileDao.get(fileId);
-
-				if (moveToHome) {
-					// set this file and all subfiles and folders the ownerId
-					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, userId, null);
-
-				} else {
-					// set this file and all subfiles and folders the roomId
-					fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, null, roomId);
-
-				}
-
+				// FIXME TODO A test is required that checks if the user is allowed to move the file
+				log.debug("move " + id);
+				return new FileExplorerItemDTO(fileDao.move(id, parentId, userId, roomId));
+			} else {
+				throw new ServiceException("Insufficient permissins"); //TODO code -26
 			}
-		} catch (Exception err) {
-			log.error("[moveFile] ", err);
+		} catch (ServiceException e) {
+			throw e;
+		} catch (Exception e) {
+			log.error("[move] ", e);
+			throw new ServiceException(e.getMessage());
 		}
-		return null;
 	}
 
 }