public Map<String, Serializable> call() throws Exception { return delegatee.getFileMetadata( fileId ); } }, Messages.getInstance().getString( "ExceptionLoggingDecorator.getFileMetadata", fileId ) ); //$NON-NLS-1$
@Override public List<StringKeyStringValueDto> getFileMetadata( final String fileId ) { final Map<String, Serializable> metadataMap = repo.getFileMetadata( fileId ); final List<StringKeyStringValueDto> fileMetadataMap = new ArrayList<StringKeyStringValueDto>( metadataMap.size() ); for ( final String key : metadataMap.keySet() ) { fileMetadataMap.add( new StringKeyStringValueDto( key, metadataMap.get( key ).toString() ) ); } return fileMetadataMap; }
/** * Gets a metadata for the given fileid * * @param fileId * file id * @return Map<String, Serializable> of all the metadata for this file */ @Override public Map<String, Serializable> getFileMetadata( final Serializable fileId ) { return repository.getFileMetadata( fileId ); }
public List<IUserSetting> getGlobalUserSettings() { String tentantHomePath = ClientRepositoryPaths.getEtcFolderPath(); Serializable tenantHomeId = repository.getFile( tentantHomePath ).getId(); Map<String, Serializable> tenantMetadata = repository.getFileMetadata( tenantHomeId ); List<IUserSetting> userSettings = new ArrayList<IUserSetting>( tenantMetadata.size() ); for ( Map.Entry<String, Serializable> entry : tenantMetadata.entrySet() ) { String key = entry.getKey(); if ( key.startsWith( SETTING_PREFIX ) ) { userSettings.add( createSetting( key.substring( SETTING_PREFIX.length() ), entry.getValue() ) ); } } return userSettings; }
public void deleteUserSettings() { String homePath = ClientRepositoryPaths.getUserHomeFolderPath( PentahoSessionHolder.getSession().getName() ); Serializable id = repository.getFile( homePath ).getId(); Map<String, Serializable> fileMetadata = repository.getFileMetadata( id ); Map<String, Serializable> finalMetadata = new HashMap<String, Serializable>( fileMetadata.size() ); for ( Map.Entry<String, Serializable> entry : fileMetadata.entrySet() ) { String key = entry.getKey(); if ( !key.startsWith( SETTING_PREFIX ) ) { finalMetadata.put( key, entry.getValue() ); } } repository.setFileMetadata( id, finalMetadata ); }
@Override public void deleteUserSettings( String username ) throws SecurityException { if( canAdminister() ) { String homePath = ClientRepositoryPaths.getUserHomeFolderPath( username ); Serializable id = repository.getFile( homePath ).getId(); Map<String, Serializable> fileMetadata = repository.getFileMetadata( id ); Map<String, Serializable> finalMetadata = new HashMap<String, Serializable>( fileMetadata.size() ); for ( Map.Entry<String, Serializable> entry : fileMetadata.entrySet() ) { String key = entry.getKey(); if ( !key.startsWith( SETTING_PREFIX ) ) { finalMetadata.put( key, entry.getValue() ); } } repository.setFileMetadata( id, finalMetadata ); } else { throw new SecurityException( "Unauthorized User" ); } }
private boolean isScheduleAllowed( final Serializable repositoryId ) { boolean canSchedule = false; canSchedule = getAuthorizationPolicy().isAllowed( SCHEDULER_ACTION_NAME ); if ( canSchedule ) { Map<String, Serializable> metadata = getRepository().getFileMetadata( repositoryId ); if ( metadata.containsKey( RepositoryFile.SCHEDULABLE_KEY ) ) { canSchedule = BooleanUtils.toBoolean( (String) metadata.get( RepositoryFile.SCHEDULABLE_KEY ) ); } } return canSchedule; }
@Override public List<IUserSetting> getUserSettings( String username ) throws SecurityException { // if the user does not have the setting, check if a global setting exists List<IUserSetting> userSettings = new ArrayList<>(); if ( canAdminister() ) { try { String homePath = ClientRepositoryPaths.getUserHomeFolderPath( username ); Serializable userHomeId = repository.getFile( homePath ).getId(); Map<String, Serializable> userMetadata = repository.getFileMetadata( userHomeId ); for ( Map.Entry<String, Serializable> entry : userMetadata.entrySet() ) { String key = entry.getKey(); if ( key.startsWith( SETTING_PREFIX ) ) { String settingFromKey = key.substring( SETTING_PREFIX.length() ); userSettings.add( createSetting( settingFromKey, entry.getValue() ) ); } } } catch ( Throwable ignored ) { // if anything goes wrong with authentication (anonymous user) or permissions // just return the default value, if we continue to log these errors (like on before Login) // we'll see *many* errors in the logs which are not helpful } } else { throw new SecurityException( "Unauthorized User" ); } return userSettings; }
public List<IUserSetting> getUserSettings() { // get the global settings and the user settings // merge unseen global settings into the user settings list List<IUserSetting> userSettings = new ArrayList<IUserSetting>(); String tentantHomePath = ClientRepositoryPaths.getEtcFolderPath(); Serializable tenantHomeId = repository.getFile( tentantHomePath ).getId(); Map<String, Serializable> tenantMetadata = repository.getFileMetadata( tenantHomeId ); for ( Map.Entry<String, Serializable> entry : tenantMetadata.entrySet() ) { String key = entry.getKey(); if ( key.startsWith( SETTING_PREFIX ) ) { UserSetting setting = createSetting( key.substring( SETTING_PREFIX.length() ), entry.getValue() ); userSettings.add( setting ); } } String homePath = ClientRepositoryPaths.getUserHomeFolderPath( PentahoSessionHolder.getSession().getName() ); Serializable userHomeId = repository.getFile( homePath ).getId(); Map<String, Serializable> userMetadata = repository.getFileMetadata( userHomeId ); for ( Map.Entry<String, Serializable> entry : userMetadata.entrySet() ) { String key = entry.getKey(); if ( key.startsWith( SETTING_PREFIX ) ) { UserSetting setting = createSetting( key.substring( SETTING_PREFIX.length() ), entry.getValue() ); // see if a global setting exists which will be overridden if ( userSettings.contains( setting ) ) { userSettings.remove( setting ); } userSettings.add( setting ); } } return userSettings; }
public IUserSetting getGlobalUserSetting( String settingName, String defaultValue ) { String tentantHomePath = ClientRepositoryPaths.getEtcFolderPath(); Serializable tenantHomeId = repository.getFile( tentantHomePath ).getId(); Map<String, Serializable> tenantMetadata = repository.getFileMetadata( tenantHomeId ); String key = SETTING_PREFIX + settingName; Serializable value = tenantMetadata.get( key ); if ( value != null ) { return createSetting( settingName, value.toString() ); } return createSetting( settingName, defaultValue ); }
public void setGlobalUserSetting( String settingName, String settingValue ) { if ( canAdminister() ) { String tentantHomePath = ClientRepositoryPaths.getEtcFolderPath(); Serializable tenantHomeId = repository.getFile( tentantHomePath ).getId(); Map<String, Serializable> tenantMetadata = repository.getFileMetadata( tenantHomeId ); tenantMetadata.put( SETTING_PREFIX + settingName, settingValue ); repository.setFileMetadata( tenantHomeId, tenantMetadata ); } }
@Override public void setUserSetting( String username, String settingName, String settingValue ) throws SecurityException { if ( canAdminister() ) { String homePath = ClientRepositoryPaths.getUserHomeFolderPath( username ); synchronized ( lock ) { final Serializable id = repository.getFile( homePath ).getId(); final Map<String, Serializable> fileMetadata = repository.getFileMetadata( id ); fileMetadata.put( SETTING_PREFIX + settingName, settingValue ); try { SecurityHelper.getInstance().runAsSystem( new Callable<Void>() { @Override public Void call() throws Exception { repository.setFileMetadata( id, fileMetadata ); return null; } } ); } catch ( Exception e ) { if ( log.isDebugEnabled() ) { log.debug( "Error storing user setting for user: " + username + ", setting: " + settingName + ", value: " + settingValue, e ); } log.error( "Error storing user setting", e ); } } } else { throw new SecurityException( "Unauthorized User" ); } }
@Override public IUserSetting getUserSetting( String username, String settingName, String defaultValue ) throws SecurityException { // if the user does not have the setting, check if a global setting exists if ( canAdminister() ) { try { String homePath = ClientRepositoryPaths.getUserHomeFolderPath( PentahoSessionHolder.getSession().getName() ); Serializable userHomeId = repository.getFile( homePath ).getId(); Map<String, Serializable> userMetadata = repository.getFileMetadata( userHomeId ); for ( Map.Entry<String, Serializable> entry : userMetadata.entrySet() ) { String key = entry.getKey(); if ( key.startsWith( SETTING_PREFIX ) ) { String settingFromKey = key.substring( SETTING_PREFIX.length() ); if ( settingFromKey.equals( settingName ) ) { return createSetting( settingFromKey, entry.getValue() ); } } } } catch ( Throwable ignored ) { // if anything goes wrong with authentication (anonymous user) or permissions // just return the default value, if we continue to log these errors (like on before Login) // we'll see *many* errors in the logs which are not helpful } } else { throw new SecurityException( "Unauthorized User" ); } return createSetting( settingName, defaultValue ); }
Map<String, Serializable> userMetadata = repository.getFileMetadata( userHomeId ); Map<String, Serializable> tenantMetadata = repository.getFileMetadata( tenantHomeId );
public void setUserSetting( String settingName, String settingValue ) { String name = PentahoSessionHolder.getSession().getName(); String homePath = ClientRepositoryPaths.getUserHomeFolderPath( name ); synchronized ( lock ) { final Serializable id = repository.getFile( homePath ).getId(); final Map<String, Serializable> fileMetadata = repository.getFileMetadata( id ); fileMetadata.put( SETTING_PREFIX + settingName, settingValue ); try { SecurityHelper.getInstance().runAsSystem( new Callable<Void>() { @Override public Void call() throws Exception { repository.setFileMetadata( id, fileMetadata ); return null; } } ); } catch ( Exception e ) { if ( log.isDebugEnabled() ) { log.debug( "Error storing user setting for user: " + name + ", setting: " + settingName + ", value: " + settingValue, e ); } log.error( "Error storing user setting", e ); } } }
private void markContentAsGenerated( IPostProcessingAction actionBean ) { IUnifiedRepository repo = PentahoSystem.get( IUnifiedRepository.class ); String lineageId = (String) params.get( ActionUtil.QUARTZ_LINEAGE_ID ); for ( IContentItem contentItem : actionBean.getActionOutputContents() ) { RepositoryFile sourceFile = getRepositoryFileSafe( repo, contentItem.getPath() ); // add metadata if we have access and we have file if ( sourceFile != null ) { Map<String, Serializable> metadata = repo.getFileMetadata( sourceFile.getId() ); metadata.put( ActionUtil.QUARTZ_LINEAGE_ID, lineageId ); repo.setFileMetadata( sourceFile.getId(), metadata ); } else { String fileName = getFSFileNameSafe( contentItem ); logger.warn( Messages.getInstance().getSkipRemovingOutputFile( fileName ) ); } } }
Map<String, Serializable> dummyMetaData = new HashMap<>(); dummyMetaData.put( RepositoryFile.SCHEDULABLE_KEY, true ); when( mockRepository.getFileMetadata( repoId ) ).thenReturn( dummyMetaData ); RepositoryFile mockRepoFile = Mockito.mock( RepositoryFile.class ); when( mockRepoFile.isFolder() ).thenReturn( true );
Map<String, Serializable> dummyMetaData = new HashMap<>(); dummyMetaData.put( RepositoryFile.SCHEDULABLE_KEY, true ); when( mockRepository.getFileMetadata( repoId ) ).thenReturn( dummyMetaData ); RepositoryFile mockRepoFile = Mockito.mock( RepositoryFile.class ); when( mockRepoFile.isFolder() ).thenReturn( true );
} }; when( repository.getFileMetadata( eq( USER_FOLDER_ID ) ) ).thenReturn( userSettings ); when( repository.getFileMetadata( eq( TENANT_FOLDER_ID ) ) ).thenReturn( globalSettings );
final Map<String, Serializable> fileMetadata = repository.getFileMetadata( testfile.getId() ); assertNotNull( fileMetadata ); assertEquals( 0, fileMetadata.size() ); final Map<String, Serializable> fileMetadata = repository.getFileMetadata( testfile.getId() ); assertNotNull( fileMetadata ); assertEquals( 2, fileMetadata.size() );