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