use of org.pentaho.di.repository.IUser in project pentaho-kettle by pentaho.
the class KettleDatabaseRepository method connect.
/**
* Connect to the repository.
*
* @throws KettleException
* in case there is a general unexpected error or if we're already connected
*/
public void connect(String username, String password, boolean upgrade) throws KettleException {
// first disconnect if already connected
connectionDelegate.connect(upgrade, upgrade);
try {
IUser userinfo = userDelegate.loadUserInfo(new UserInfo(), username, password);
securityProvider = new KettleDatabaseRepositorySecurityProvider(this, repositoryMeta, userinfo);
// We need to add services in the list in the order of dependencies
registerRepositoryService(RepositorySecurityProvider.class, securityProvider);
registerRepositoryService(RepositorySecurityManager.class, securityProvider);
// Apparently, MySQL InnoDB opens a new transaction simply by doing a
// lookup.
//
connectionDelegate.closeReadTransaction();
// Open the metaStore for business too...
//
metaStore = new KettleDatabaseRepositoryMetaStore(this);
} catch (KettleDatabaseException e) {
// if we fail to log in, disconnect and then rethrow the exception
connectionDelegate.disconnect();
throw e;
}
}
use of org.pentaho.di.repository.IUser in project pentaho-kettle by pentaho.
the class GetRepositoryNamesTest method prepareExtendedRepository.
@SuppressWarnings("deprecation")
private static void prepareExtendedRepository() throws KettleException {
repoExtended = mock(RepositoryExtended.class);
when(repoExtended.loadRepositoryDirectoryTree(anyString(), anyString(), anyInt(), anyBoolean(), anyBoolean(), anyBoolean())).then(new Answer<RepositoryDirectoryInterface>() {
@Override
public RepositoryDirectoryInterface answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
RepositoryDirectoryInterface root = new RepositoryDirectory();
root.setName("/");
RepositoryDirectoryInterface subdir1 = new RepositoryDirectory(root, "subdir1");
RepositoryDirectoryInterface subdir2 = new RepositoryDirectory(subdir1, "subdir2");
RepositoryElementMetaInterface trans1 = new RepositoryObject(null, "Trans1", subdir1, "user", null, RepositoryObjectType.TRANSFORMATION, "", false);
RepositoryElementMetaInterface trans2 = new RepositoryObject(null, "Trans2", subdir2, "user", null, RepositoryObjectType.TRANSFORMATION, "", false);
RepositoryElementMetaInterface job1 = new RepositoryObject(null, "Job1", subdir1, "user", null, RepositoryObjectType.JOB, "", false);
RepositoryElementMetaInterface job2 = new RepositoryObject(null, "Job2", subdir2, "user", null, RepositoryObjectType.JOB, "", false);
List<RepositoryElementMetaInterface> list1 = new ArrayList<RepositoryElementMetaInterface>();
List<RepositoryElementMetaInterface> list2 = new ArrayList<RepositoryElementMetaInterface>();
if (((String) args[1]).contains("ktr")) {
list1.add(trans1);
list2.add(trans2);
}
if (((String) args[1]).contains("kjb")) {
list1.add(job1);
list2.add(job2);
}
subdir1.setRepositoryObjects(list1);
subdir2.setRepositoryObjects(list2);
if (((Integer) args[2]) == -1) {
subdir1.addSubdirectory(subdir2);
root.addSubdirectory(subdir1);
}
String actualPath = ((String) args[0]);
if (actualPath.equals("/")) {
return root;
} else if (actualPath.equals(subdir1.getPath())) {
return subdir1;
} else if (actualPath.equals(subdir2.getPath())) {
return subdir2;
} else {
return null;
}
}
});
IUser user = Mockito.mock(IUser.class);
Mockito.when(user.isAdmin()).thenReturn(true);
Mockito.when(repoExtended.getUserInfo()).thenReturn(user);
}
Aggregations