use of com.thinkbiganalytics.metadata.api.project.Project in project kylo by Teradata.
the class JcrProjectProviderAccessControlTest method checkPermsAllowedProject3.
@Test(dependsOnMethods = "testCreateProject3")
public void checkPermsAllowedProject3() {
logger.info("Running Test 'checkPermsAllowedProject3'");
metadata.read(() -> {
Optional<Project> u1Proj = this.projProvider.findProjectByName("Project3");
assertThat(u1Proj.isPresent()).isTrue();
Project Project3 = u1Proj.get();
Project3.getAllowedActions().checkPermission(ProjectAccessControl.EDIT_PROJECT);
}, TEST_USER1);
}
use of com.thinkbiganalytics.metadata.api.project.Project in project kylo by Teradata.
the class JcrProjectProviderAccessControlTest method checkPermsDeniedProject3.
@Test(dependsOnMethods = "testCreateProject3", expectedExceptions = AccessControlException.class)
public void checkPermsDeniedProject3() {
logger.info("Running Test 'checkPermsDeniedProject3'");
metadata.read(() -> {
Optional<Project> u1Proj = this.projProvider.findProjectByName("Project3");
assertThat(u1Proj.isPresent()).isTrue();
Project Project3 = u1Proj.get();
Project3.getAllowedActions().checkPermission(ProjectAccessControl.EDIT_PROJECT);
}, TEST_USER2);
}
use of com.thinkbiganalytics.metadata.api.project.Project in project kylo by Teradata.
the class JcrProjectProviderAccessControlTest method testCreateProject3.
@Test
public void testCreateProject3() {
logger.info("Running Test 'testCreateProject3'");
// taken from: JcrFeedAllowedActionsTest createFeeds()
String projectName = metadata.commit(() -> {
/*
actionsProvider.getAllowedActions(AllowedActions.PROJECTS).ifPresent(allowed -> allowed.enableAll(TEST_USER1));
actionsProvider.getAllowedActions(AllowedActions.PROJECTS).ifPresent(allowed -> allowed.enableAll(TEST_USER2));
this.roleProvider.createRole(SecurityRole.PROJECT, "testEditor", "Editor", "Can edit projects")
.setPermissions(ProjectAccessControl.EDIT_PROJECT, FeedAccessControl.ENABLE_DISABLE, FeedAccessControl.EXPORT);
this.roleProvider.createRole(SecurityRole.PROJECT, "testViewer", "Viewer", "Can view projects only")
.setPermissions(ProjectAccessControl.ACCESS_PROJECT);
*/
Project p3 = projProvider.ensureProject("Project3");
p3.setProjectName("ProjectName3");
p3.setContainerImage("kylo/nonExisentImage");
// sets Access Control for user.
// p3.getAllowedActions().enableAll(TEST_USER1);
// p3.getAllowedActions().enable(TEST_USER2, ProjectAccessControl.ACCESS_PROJECT);
// add User to the Role (new way of doing it)
p3.getRoleMembership(ProjectAccessControl.ROLE_EDITOR).ifPresent(role -> role.addMember(TEST_USER1));
p3.getRoleMembership(ProjectAccessControl.ROLE_READER).ifPresent(role -> role.addMember(TEST_USER2));
return p3.getProjectName();
}, JcrMetadataAccess.SERVICE);
}
use of com.thinkbiganalytics.metadata.api.project.Project in project kylo by Teradata.
the class JcrNotebooksApp method main.
public static void main(String... args) throws RepositoryException, IOException {
ModeShapeEngine engine = new ModeShapeEngine();
engine.start();
Repository repository = null;
String repositoryName = null;
URL url = JcrNotebooksApp.class.getClassLoader().getResource("sandbox/notebook-test-repository.json");
RepositoryConfiguration config = RepositoryConfiguration.read(url);
// Verify the configuration for the repository ...
Problems problems = config.validate();
if (problems.hasErrors()) {
System.err.println("Problems starting the engine.");
System.err.println(problems);
System.exit(-1);
}
// Deploy the repository ...
repository = engine.deploy(config);
repositoryName = config.getName();
Session session = null;
JcrTools tools = new JcrTools();
tools.setDebug(true);
// get the repository
repository = engine.getRepository(repositoryName);
Project p;
session = repository.login("default");
// Create the '/files' node that is an 'nt:folder' ...
Node root = session.getRootNode();
/*
Node filesNode = root.addNode("notebooks", "nt:folder");
InputStream stream =
new BufferedInputStream(new FileInputStream("/Users/th186036/filesystemconnector/hello.txt"));
// Create an 'nt:file' node at the supplied path ...
Node fileNode = filesNode.addNode("hello.txt", "nt:file");
// Upload the file to that node ...
Node contentNode = fileNode.addNode("jcr:content", "nt:resource");
Binary binary = session.getValueFactory().createBinary(stream);
contentNode.setProperty("jcr:data", binary);
session.save();
*/
session = repository.login("default");
Node project = JcrUtil.getOrCreateNode(root, "Project1", JcrProject.NODE_TYPE);
List<Node> nodes = JcrUtil.getNodesOfType(root, JcrProject.NODE_TYPE);
logger.debug("Node list {}", nodes);
// List<JcrEntity> fileNodes = JcrUtil.getChildrenMatchingNodeType(root, JcrProject.NODE_TYPE, JcrEntity.class, null);
// logger.debug("Node list {}", nodes );
logger.debug("Modeshape subgraph");
tools.printSubgraph(root);
if (session != null) {
session.logout();
}
logger.info("Shutting down engine ...");
try {
engine.shutdown().get();
logger.info("Success!");
} catch (Exception e) {
e.printStackTrace();
}
}
use of com.thinkbiganalytics.metadata.api.project.Project in project kylo by Teradata.
the class JcrProjectProvider method getProjectOwnerPlusRole.
private Set<UsernamePrincipal> getProjectOwnerPlusRole(String systemName, String accessControl) {
Optional<Project> proj = findProjectByName(systemName);
if (proj.isPresent()) {
Project domain = proj.get();
Set<UsernamePrincipal> result = getProjectMembersWithRole(domain, accessControl);
// Owners can read...
result.add((UsernamePrincipal) domain.getOwner());
return result;
} else {
return ImmutableSet.of();
}
}
Aggregations