protected void removeHiddenFilesFromList( List<RepositoryFile> children ) { for ( Iterator<RepositoryFile> it = children.iterator(); it.hasNext(); ) { RepositoryFile child = it.next(); if ( child.isHidden() ) { it.remove(); } } }
@Override public boolean isVisible() { return !isRoot() && !self.isHidden(); }
@Override public List<IMetaStoreElementType> getElementTypes( String namespace ) throws MetaStoreException { List<IMetaStoreElementType> elementTypes = new ArrayList<IMetaStoreElementType>(); RepositoryFile namespaceFile = validateNamespace( namespace ); List<RepositoryFile> children = getChildren( namespaceFile.getId() ); for ( RepositoryFile child : children ) { if ( !child.isHidden() ) { elementTypes.add( getElementType( namespace, child.getId().toString() ) ); } } return elementTypes; }
public static RepositoryDirectory build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryDirectory repositoryDirectory = new RepositoryDirectory(); repositoryDirectory.setParent( parentPath ); repositoryDirectory.setName( repositoryFile.getName() ); repositoryDirectory.setPath( repositoryFile.getPath() ); repositoryDirectory.setObjectId( () -> (String) repositoryFile.getId() ); repositoryDirectory.setHidden( repositoryFile.isHidden() && !isAdmin ); repositoryDirectory.setDate( repositoryFile.getLastModifiedDate() != null ? repositoryFile.getLastModifiedDate() : repositoryFile.getCreatedDate() ); return repositoryDirectory; }
public static RepositoryFile build( String parentPath, org.pentaho.platform.api.repository2.unified.RepositoryFile repositoryFile, Boolean isAdmin ) { RepositoryFile repositoryFile1 = new RepositoryFile(); repositoryFile1.setObjectId( () -> (String) repositoryFile.getId() ); repositoryFile1.setName( stripExtension( repositoryFile.getName() ) ); repositoryFile1.setType( getType( repositoryFile.getName() ) ); repositoryFile1.setExtension( ".ktr" ); repositoryFile1.setDate( repositoryFile.getLastModifiedDate() ); repositoryFile1.setPath( parentPath ); repositoryFile1.setHidden( repositoryFile.isHidden() && !isAdmin ); return repositoryFile1; }
public RepositoryFileOutputStream( final RepositoryFile file ) { this( file.getPath(), false, false, null, file.isHidden() ); }
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; }
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() );
fileNode.setProperty( pentahoJcrConstants.getPHO_CONTENTTYPE(), transformer.getContentType() ); fileNode.setProperty( pentahoJcrConstants.getPHO_LASTMODIFIED(), Calendar.getInstance() ); fileNode.setProperty( pentahoJcrConstants.getPHO_HIDDEN(), file.isHidden() ); fileNode.setProperty( pentahoJcrConstants.getPHO_FILESIZE(), content.getDataSize() ); fileNode.setProperty( pentahoJcrConstants.getPHO_ACLNODE(), file.isAclNode() );
@Test public void testWhenChildrenIsDeleted() throws Exception { // mock RepositoryFile to return null RepositoryFile mockFile = mock( RepositoryFileProxy.class ); when( mockFile.isHidden() ).thenReturn( null ); // create tree with the mockFile RepositoryFileTree nullValueDir = new RepositoryFileTree( mockFile, Collections.<RepositoryFileTree>emptyList() ); RepositoryFile root = new RepositoryFile.Builder( "rootDir" ).build(); ArrayList<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>( 1 ); children.add( nullValueDir ); RepositoryFileTree rootDir = new RepositoryFileTree( root, children ); // to DTO RepositoryFileTreeAdapter adapter = new RepositoryFileTreeAdapter(); RepositoryFileTreeDto dtoThere = adapter.marshal( rootDir ); // as isHidden() returns null, it's expected that null was returned, so root has no children assertTrue( dtoThere.getChildren().isEmpty() ); }
@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.setHidden( v.isHidden() );
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() ); } }