protected long getParentFolderId(DLFolder dlFolder, long parentFolderId) throws SystemException { if (parentFolderId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { return parentFolderId; } if (dlFolder.getFolderId() == parentFolderId) { return dlFolder.getParentFolderId(); } else { DLFolder parentDLFolder = dlFolderPersistence.fetchByPrimaryKey(parentFolderId); if ((parentDLFolder == null) || (dlFolder.getGroupId() != parentDLFolder.getGroupId())) { return dlFolder.getParentFolderId(); } List<Long> subfolderIds = new ArrayList<Long>(); getSubfolderIds(subfolderIds, dlFolder.getGroupId(), dlFolder.getFolderId()); if (subfolderIds.contains(parentFolderId)) { return dlFolder.getParentFolderId(); } return parentFolderId; } }
@Override public boolean hasWorkflowDefinitionLink( long companyId, long groupId, long folderId, long fileEntryTypeId) throws Exception { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { DLFolder dlFolder = DLFolderLocalServiceUtil.fetchDLFolder(folderId); if (dlFolder == null) { return false; } if (dlFolder.isOverrideFileEntryTypes()) { break; } folderId = dlFolder.getParentFolderId(); } if (WorkflowDefinitionLinkLocalServiceUtil.hasWorkflowDefinitionLink( companyId, groupId, DLFolderConstants.getClassName(), folderId, fileEntryTypeId) || WorkflowDefinitionLinkLocalServiceUtil.hasWorkflowDefinitionLink( companyId, groupId, DLFolderConstants.getClassName(), folderId, DLFileEntryTypeConstants.FILE_ENTRY_TYPE_ID_ALL)) { return true; } return false; }
public static SyncDLObject toSyncDLObject(DLFolder dlFolder, String event) { SyncDLObject syncDLObject = new SyncDLObjectImpl(); syncDLObject.setCompanyId(dlFolder.getCompanyId()); syncDLObject.setCreateDate(dlFolder.getCreateDate()); syncDLObject.setModifiedDate(dlFolder.getModifiedDate()); syncDLObject.setRepositoryId(dlFolder.getRepositoryId()); syncDLObject.setParentFolderId(dlFolder.getParentFolderId()); syncDLObject.setName(dlFolder.getName()); syncDLObject.setExtension(StringPool.BLANK); syncDLObject.setMimeType(StringPool.BLANK); syncDLObject.setDescription(dlFolder.getDescription()); syncDLObject.setChangeLog(StringPool.BLANK); syncDLObject.setExtraSettings(StringPool.BLANK); syncDLObject.setVersion(StringPool.BLANK); syncDLObject.setSize(0); syncDLObject.setChecksum(StringPool.BLANK); syncDLObject.setEvent(event); syncDLObject.setLockExpirationDate(null); syncDLObject.setLockUserId(0); syncDLObject.setLockUserName(StringPool.BLANK); syncDLObject.setType(SyncConstants.TYPE_FOLDER); syncDLObject.setTypePK(dlFolder.getFolderId()); syncDLObject.setTypeUuid(dlFolder.getUuid()); return syncDLObject; }
protected long getFileEntryTypesPrimaryFolderId(long folderId) throws NoSuchFolderException, SystemException { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { DLFolder dlFolder = dlFolderPersistence.findByPrimaryKey(folderId); if (dlFolder.isOverrideFileEntryTypes()) { break; } folderId = dlFolder.getParentFolderId(); } return folderId; }
@Override public int compareTo(DLFolder dlFolder) { int value = 0; if (getParentFolderId() < dlFolder.getParentFolderId()) { value = -1; } else if (getParentFolderId() > dlFolder.getParentFolderId()) { value = 1; } else { value = 0; } if (value != 0) { return value; } value = getName().compareToIgnoreCase(dlFolder.getName()); if (value != 0) { return value; } return 0; }
protected long getFileEntryTypesPrimaryFolderId(long folderId) throws NoSuchFolderException { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { DLFolder dlFolder = dlFolderPersistence.findByPrimaryKey(folderId); if (dlFolder.getRestrictionType() == DLFolderConstants.RESTRICTION_TYPE_FILE_ENTRY_TYPES_AND_WORKFLOW) { break; } folderId = dlFolder.getParentFolderId(); } return folderId; }
public DLFolder updateDLFolder(DLFolder model) throws SystemException { DLFolder dlFolder = new DLFolderImpl(); dlFolder.setNew(false); dlFolder.setUuid(model.getUuid()); dlFolder.setFolderId(model.getFolderId()); dlFolder.setGroupId(model.getGroupId()); dlFolder.setCompanyId(model.getCompanyId()); dlFolder.setUserId(model.getUserId()); dlFolder.setUserName(model.getUserName()); dlFolder.setCreateDate(model.getCreateDate()); dlFolder.setModifiedDate(model.getModifiedDate()); dlFolder.setParentFolderId(model.getParentFolderId()); dlFolder.setName(model.getName()); dlFolder.setDescription(model.getDescription()); dlFolder.setLastPostDate(model.getLastPostDate()); return dlFolderPersistence.update(dlFolder); }
@Override protected Document doGetDocument(Object obj) throws Exception { DLFolder dlFolder = (DLFolder) obj; if (_log.isDebugEnabled()) { _log.debug("Indexing folder " + dlFolder); } Document document = getBaseModelDocument(PORTLET_ID, dlFolder); document.addText(Field.DESCRIPTION, dlFolder.getDescription()); document.addKeyword(Field.FOLDER_ID, dlFolder.getParentFolderId()); document.addKeyword(Field.HIDDEN, (dlFolder.isHidden() || dlFolder.isInHiddenFolder())); document.addText(Field.TITLE, dlFolder.getName()); document.addKeyword(Field.TREE_PATH, dlFolder.getTreePath()); document.addKeyword(Field.TREE_PATH, StringUtil.split(dlFolder.getTreePath(), CharPool.SLASH)); if (_log.isDebugEnabled()) { _log.debug("Document " + dlFolder + " indexed successfully"); } return document; }
@Test public void testUpdateExisting() throws Exception { long pk = ServiceTestUtil.nextLong(); DLFolder newDLFolder = _persistence.create(pk); newDLFolder.setUuid(ServiceTestUtil.randomString()); newDLFolder.setGroupId(ServiceTestUtil.nextLong()); newDLFolder.setCompanyId(ServiceTestUtil.nextLong()); newDLFolder.setUserId(ServiceTestUtil.nextLong()); newDLFolder.setUserName(ServiceTestUtil.randomString()); newDLFolder.setCreateDate(ServiceTestUtil.nextDate()); newDLFolder.setModifiedDate(ServiceTestUtil.nextDate()); newDLFolder.setRepositoryId(ServiceTestUtil.nextLong()); newDLFolder.setMountPoint(ServiceTestUtil.randomBoolean()); newDLFolder.setParentFolderId(ServiceTestUtil.nextLong()); newDLFolder.setName(ServiceTestUtil.randomString()); newDLFolder.setDescription(ServiceTestUtil.randomString()); newDLFolder.setLastPostDate(ServiceTestUtil.nextDate()); newDLFolder.setDefaultFileEntryTypeId(ServiceTestUtil.nextLong()); newDLFolder.setHidden(ServiceTestUtil.randomBoolean()); newDLFolder.setOverrideFileEntryTypes(ServiceTestUtil.randomBoolean()); newDLFolder.setStatus(ServiceTestUtil.nextInt()); newDLFolder.setStatusByUserId(ServiceTestUtil.nextLong()); newDLFolder.setStatusByUserName(ServiceTestUtil.randomString()); newDLFolder.setStatusDate(ServiceTestUtil.nextDate()); _persistence.update(newDLFolder); DLFolder existingDLFolder = _persistence.findByPrimaryKey(newDLFolder.getPrimaryKey()); Assert.assertEquals(existingDLFolder.getUuid(), newDLFolder.getUuid()); Assert.assertEquals(existingDLFolder.getFolderId(), newDLFolder.getFolderId()); Assert.assertEquals(existingDLFolder.getGroupId(), newDLFolder.getGroupId()); Assert.assertEquals(existingDLFolder.getCompanyId(), newDLFolder.getCompanyId()); Assert.assertEquals(existingDLFolder.getUserId(), newDLFolder.getUserId()); Assert.assertEquals(existingDLFolder.getUserName(), newDLFolder.getUserName()); Assert.assertEquals( Time.getShortTimestamp(existingDLFolder.getCreateDate()), Time.getShortTimestamp(newDLFolder.getCreateDate())); Assert.assertEquals( Time.getShortTimestamp(existingDLFolder.getModifiedDate()), Time.getShortTimestamp(newDLFolder.getModifiedDate())); Assert.assertEquals(existingDLFolder.getRepositoryId(), newDLFolder.getRepositoryId()); Assert.assertEquals(existingDLFolder.getMountPoint(), newDLFolder.getMountPoint()); Assert.assertEquals(existingDLFolder.getParentFolderId(), newDLFolder.getParentFolderId()); Assert.assertEquals(existingDLFolder.getName(), newDLFolder.getName()); Assert.assertEquals(existingDLFolder.getDescription(), newDLFolder.getDescription()); Assert.assertEquals( Time.getShortTimestamp(existingDLFolder.getLastPostDate()), Time.getShortTimestamp(newDLFolder.getLastPostDate())); Assert.assertEquals( existingDLFolder.getDefaultFileEntryTypeId(), newDLFolder.getDefaultFileEntryTypeId()); Assert.assertEquals(existingDLFolder.getHidden(), newDLFolder.getHidden()); Assert.assertEquals( existingDLFolder.getOverrideFileEntryTypes(), newDLFolder.getOverrideFileEntryTypes()); Assert.assertEquals(existingDLFolder.getStatus(), newDLFolder.getStatus()); Assert.assertEquals(existingDLFolder.getStatusByUserId(), newDLFolder.getStatusByUserId()); Assert.assertEquals(existingDLFolder.getStatusByUserName(), newDLFolder.getStatusByUserName()); Assert.assertEquals( Time.getShortTimestamp(existingDLFolder.getStatusDate()), Time.getShortTimestamp(newDLFolder.getStatusDate())); }
public static boolean contains( PermissionChecker permissionChecker, DLFolder dlFolder, String actionId) throws PortalException, SystemException { if (actionId.equals(ActionKeys.ADD_FOLDER)) { actionId = ActionKeys.ADD_SUBFOLDER; } Boolean hasPermission = StagingPermissionUtil.hasPermission( permissionChecker, dlFolder.getGroupId(), DLFolder.class.getName(), dlFolder.getFolderId(), PortletKeys.DOCUMENT_LIBRARY, actionId); if (hasPermission != null) { return hasPermission.booleanValue(); } long folderId = dlFolder.getFolderId(); if (actionId.equals(ActionKeys.VIEW)) { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { dlFolder = DLFolderLocalServiceUtil.getFolder(folderId); folderId = dlFolder.getParentFolderId(); if (!permissionChecker.hasOwnerPermission( dlFolder.getCompanyId(), DLFolder.class.getName(), dlFolder.getFolderId(), dlFolder.getUserId(), actionId) && !permissionChecker.hasPermission( dlFolder.getGroupId(), DLFolder.class.getName(), dlFolder.getFolderId(), actionId)) { return false; } if (!PropsValues.PERMISSIONS_VIEW_DYNAMIC_INHERITANCE) { break; } } return true; } else { while (folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) { dlFolder = DLFolderLocalServiceUtil.getFolder(folderId); folderId = dlFolder.getParentFolderId(); if (permissionChecker.hasOwnerPermission( dlFolder.getCompanyId(), DLFolder.class.getName(), dlFolder.getFolderId(), dlFolder.getUserId(), actionId)) { return true; } if (permissionChecker.hasPermission( dlFolder.getGroupId(), DLFolder.class.getName(), dlFolder.getFolderId(), actionId)) { return true; } } return false; } }