protected long getFolderId(long companyId, String[] pathArray, boolean parent) throws Exception { long folderId = IGFolderConstants.DEFAULT_PARENT_FOLDER_ID; if (pathArray.length <= 1) { return folderId; } else { long groupId = WebDAVUtil.getGroupId(companyId, pathArray); int x = pathArray.length; if (parent) { x--; } for (int i = 2; i < x; i++) { String name = pathArray[i]; IGFolder folder = IGFolderServiceUtil.getFolder(groupId, folderId, name); if (groupId == folder.getGroupId()) { folderId = folder.getFolderId(); } } } return folderId; }
public Resource getResource(WebDAVRequest webDavRequest) throws WebDAVException { try { String[] pathArray = webDavRequest.getPathArray(); long companyId = webDavRequest.getCompanyId(); long parentFolderId = getParentFolderId(companyId, pathArray); String name = WebDAVUtil.getResourceName(pathArray); if (Validator.isNull(name)) { String path = getRootPath() + webDavRequest.getPath(); return new BaseResourceImpl(path, StringPool.BLANK, getToken()); } try { IGFolder folder = IGFolderServiceUtil.getFolder(webDavRequest.getGroupId(), parentFolderId, name); if ((folder.getParentFolderId() != parentFolderId) || (webDavRequest.getGroupId() != folder.getGroupId())) { throw new NoSuchFolderException(); } return toResource(webDavRequest, folder, false); } catch (NoSuchFolderException nsfe) { try { long groupId = webDavRequest.getGroupId(); IGImage image = IGImageServiceUtil.getImageByFolderIdAndNameWithExtension( groupId, parentFolderId, name); return toResource(webDavRequest, image, false); } catch (NoSuchImageException nsie) { return null; } } } catch (Exception e) { throw new WebDAVException(e); } }
protected boolean deleteResource(long groupId, long parentFolderId, String name) throws PortalException, SystemException { try { IGFolder folder = IGFolderServiceUtil.getFolder(groupId, parentFolderId, name); IGFolderServiceUtil.deleteFolder(folder.getFolderId()); return true; } catch (NoSuchFolderException nsfe) { if (name.indexOf(StringPool.PERIOD) == -1) { return false; } try { IGImageServiceUtil.deleteImageByFolderIdAndNameWithExtension(groupId, parentFolderId, name); return true; } catch (NoSuchImageException nsie) { } } return false; }