public static List<RepositoryFile> getChildren( final Session session, final PentahoJcrConstants pentahoJcrConstants, final IPathConversionHelper pathConversionHelper, final ILockHelper lockHelper, final RepositoryRequest repositoryRequest ) throws RepositoryException { Node folderNode = session.getNodeByIdentifier( JcrStringHelper.idEncode( repositoryRequest.getPath() ) ); Assert.isTrue( isPentahoFolder( pentahoJcrConstants, folderNode ) ); List<RepositoryFile> children = new ArrayList<RepositoryFile>(); // get all immediate child nodes that are of type PHO_NT_PENTAHOFOLDER or PHO_NT_PENTAHOFILE NodeIterator nodeIterator = null; if ( repositoryRequest.getChildNodeFilter() != null ) { nodeIterator = folderNode.getNodes( repositoryRequest.getChildNodeFilter() ); } else { nodeIterator = folderNode.getNodes(); } while ( nodeIterator.hasNext() ) { Node node = nodeIterator.nextNode(); if ( isSupportedNodeType( pentahoJcrConstants, node ) ) { RepositoryFile file = nodeToFile( session, pentahoJcrConstants, pathConversionHelper, lockHelper, node ); if ( !file.isAclNode() && ( !file.isHidden() || repositoryRequest.isShowHidden() ) ) { children.add( file ); } } } children.removeIf( Objects::isNull ); Collections.sort( children ); return children; }
public static Node updateFolderNode( final Session session, final PentahoJcrConstants pentahoJcrConstants, final RepositoryFile folder ) throws RepositoryException { Node folderNode = session.getNodeByIdentifier( folder.getId().toString() ); // guard against using a file retrieved from a more lenient session inside a more strict session Assert.notNull( folderNode ); preventLostUpdate( session, pentahoJcrConstants, folder ); folderNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), folder.isHidden() ); folderNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), folder.isAclNode() ); if ( folder.getLocalePropertiesMap() != null && !folder.getLocalePropertiesMap().isEmpty() ) { Node localePropertiesMapNode = null; if ( !folderNode.hasNode( pentahoJcrConstants.getPHO_LOCALES() ) ) { localePropertiesMapNode = folderNode.addNode( pentahoJcrConstants.getPHO_LOCALES(), pentahoJcrConstants.getPHO_NT_LOCALE() ); } else { localePropertiesMapNode = folderNode.getNode( pentahoJcrConstants.getPHO_LOCALES() ); } setLocalePropertiesMap( session, pentahoJcrConstants, localePropertiesMapNode, folder.getLocalePropertiesMap() ); } return folderNode; }
Node folderNode = parentFolderNode.addNode( encodedfolderName, pentahoJcrConstants.getPHO_NT_PENTAHOFOLDER() ); folderNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), folder.isHidden() ); folderNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), folder.isAclNode() );
if ( ( !showHidden && rootFile.isHidden() ) || rootFile.isAclNode() || ( !accessVoterManager.hasAccess( rootFile, RepositoryFilePermission.READ, JcrRepositoryFileAclUtils.getAcl( session, pentahoJcrConstants, rootFile .getId() ), PentahoSessionHolder.getSession() ) ) ) {
fileNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), file.isHidden() ); fileNode.setProperty( pentahoJcrConstants.getPHO_FILESIZE(), content.getDataSize() ); fileNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), file.isAclNode() ); if ( file.getLocalePropertiesMap() != null && !file.getLocalePropertiesMap().isEmpty() ) { Node localePropertiesMapNode = null;
fileNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), file.isHidden() ); fileNode.setProperty( pentahoJcrConstants.getPHO_FILESIZE(), content.getDataSize() ); fileNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), file.isAclNode() );
@Override public RepositoryFileTree getTree( final String path, final int depth, final String filter, final boolean showHidden ) { FileRecord r = root.getFileRecord( path ); RepositoryFile rootFile = r.getFile(); if ( ( !showHidden && rootFile.isHidden() ) || rootFile.isAclNode() ) { return null; } List<RepositoryFileTree> children; if ( depth != 0 ) { children = new ArrayList<RepositoryFileTree>(); if ( rootFile.isFolder() ) { List<RepositoryFile> childrenTmp = getChildren( rootFile.getId(), filter ); for ( RepositoryFile child : childrenTmp ) { RepositoryFileTree repositoryFileTree = getTree( child.getPath(), depth - 1, filter, showHidden ); if ( repositoryFileTree != null ) { children.add( repositoryFileTree ); } } } Collections.sort( children ); } else { children = null; } return new RepositoryFileTree( rootFile, children ); }
@Override public RepositoryFile updateFolder( RepositoryFile folder, String versionMessage ) { Validate.isTrue( folder.isFolder() ); if ( !hasAccess( folder.getId(), EnumSet.of( WRITE ) ) ) { throw new AccessDeniedException( "access denied" ); } FileRecord fileRecord = idManager.getFileById( folder.getId() ); fileRecord.setFile( new RepositoryFile.Builder( folder ).hidden( folder.isHidden() ).title( findTitle( folder ) ) .description( findDesc( folder ) ).aclNode( folder.isAclNode() ).build() ); if ( folder.isVersioned() ) { versionManager.createVersion( fileRecord.getFile().getId(), currentUserProvider.getUser(), versionMessage, new Date() ); } return fileRecord.getFile(); }
f.setAclNode( v.isAclNode() );
public Builder( final RepositoryFile other ) { this( other.getName() ); synchronized ( other ) { this.id( other.getId() ).path( other.getPath() ).createdDate( other.getCreatedDate() ).creatorId( other.getCreatorId() ).fileSize( other.getFileSize() ).folder( other.isFolder() ).lastModificationDate( other.getLastModifiedDate() ).versioned( other.isVersioned() ).hidden( other.isHidden() ).schedulable( other.isSchedulable() ).versionId( other.getVersionId() ).locked( other.isLocked() ).lockDate( other.getLockDate() ).lockOwner( other.getLockOwner() ).lockMessage( other.getLockMessage() ).title( other.getTitle() ).description( other.getDescription() ).locale( other.getLocale() ).originalParentFolderPath( other.getOriginalParentFolderPath() ).deletedDate( other.getDeletedDate() ).localePropertiesMap( other.getLocalePropertiesMap() ).aclNode( other.isAclNode() ); } }