use of org.opensolaris.opengrok.configuration.Group in project OpenGrok by OpenGrok.
the class HttpBasicAuthorizationPlugin method discoverGroup.
private void discoverGroup(String group, HttpServletRequest request, Set<String> descendants) {
Group g;
if ((g = Group.getByName(group)) != null) {
// group discovery
for (Project p : g.getRepositories()) {
userProjects.get(request.getUserPrincipal().getName()).add(p.getName());
}
for (Project p : g.getProjects()) {
userProjects.get(request.getUserPrincipal().getName()).add(p.getName());
}
for (Group grp : g.getDescendants()) {
for (Project p : grp.getRepositories()) {
userProjects.get(request.getUserPrincipal().getName()).add(p.getName());
}
for (Project p : grp.getProjects()) {
userProjects.get(request.getUserPrincipal().getName()).add(p.getName());
}
descendants.add(grp.getName());
}
while (g != null) {
descendants.add(g.getName());
g = g.getParent();
}
}
}
use of org.opensolaris.opengrok.configuration.Group in project OpenGrok by OpenGrok.
the class AuthorizationFrameworkTest method createAllowedGroup.
private Group createAllowedGroup() {
Group g = new Group();
g.setName("allowed" + "_" + "group_" + Math.random());
return g;
}
use of org.opensolaris.opengrok.configuration.Group in project OpenGrok by OpenGrok.
the class AuthorizationEntityTest method testForGroupsAndForProjectsDiscovery.
@Test
public void testForGroupsAndForProjectsDiscovery() {
Group g1, g2, g3;
AuthorizationEntity authEntity;
RuntimeEnvironment env = RuntimeEnvironment.getInstance();
env.setProjectsEnabled(true);
env.getProjects().put("project 1", new Project("project 1"));
env.getProjects().put("project 2", new Project("project 2"));
env.getProjects().put("project 3", new Project("project 3"));
env.getProjects().put("project 4", new Project("project 4"));
env.getProjects().put("project 5", new Project("project 5"));
env.getProjects().put("project 6", new Project("project 6"));
env.getProjects().put("project 7", new Project("project 7"));
env.getProjects().put("project 8", new Project("project 8"));
env.getProjects().put("project 9", new Project("project 9"));
/**
* Structure<br>
* <pre>
* G1 + P1
* + P2
* + P3
* + G2
* + P4
* + P5
* + P6
* + P7
* G3 + P8
* + P9
* </pre>
*/
g1 = new Group();
g1.setName("group 1");
g1.addProject(env.getProjects().get("project 1"));
g1.addProject(env.getProjects().get("project 2"));
g1.addProject(env.getProjects().get("project 3"));
env.getGroups().add(g1);
g2 = new Group();
g2.setName("group 2");
g2.addProject(env.getProjects().get("project 4"));
g2.addProject(env.getProjects().get("project 5"));
g2.addProject(env.getProjects().get("project 6"));
g2.addProject(env.getProjects().get("project 7"));
g1.addGroup(g2);
env.getGroups().add(g2);
g3 = new Group();
g3.setName("group 3");
g3.addProject(env.getProjects().get("project 8"));
g3.addProject(env.getProjects().get("project 9"));
env.getGroups().add(g3);
// add g1 and all descendants their projects
authEntity = authEntityFactory.apply(null);
authEntity.setForGroups(new TreeSet<>());
authEntity.setForGroups("group 1");
authEntity.load(new TreeMap<>());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "group 1", "group 2" })), authEntity.forGroups());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "project 1", "project 2", "project 3", "project 4", "project 5", "project 6", "project 7" })), authEntity.forProjects());
// add group2, its parent g1 and g2 projects
authEntity = authEntityFactory.apply(null);
authEntity.setForGroups(new TreeSet<>());
authEntity.setForGroups("group 2");
authEntity.load(new TreeMap<>());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "group 1", "group 2" })), authEntity.forGroups());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "project 4", "project 5", "project 6", "project 7" })), authEntity.forProjects());
// add only g3 and its projects
authEntity = authEntityFactory.apply(null);
authEntity.setForGroups(new TreeSet<>());
authEntity.setForGroups("group 3");
authEntity.load(new TreeMap<>());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "group 3" })), authEntity.forGroups());
assertEquals(new TreeSet<>(Arrays.asList(new String[] { "project 8", "project 9" })), authEntity.forProjects());
}
use of org.opensolaris.opengrok.configuration.Group in project OpenGrok by OpenGrok.
the class AuthorizationPluginClassLoaderTest method testTruePlugin.
@Test
public void testTruePlugin() {
AuthorizationPluginClassLoader instance = new AuthorizationPluginClassLoader(pluginDirectory);
Class clazz = loadClass(instance, "opengrok.auth.plugin.TruePlugin");
IAuthorizationPlugin plugin = getNewInstance(clazz);
Group g = new Group("group1");
Project p = new Project("project1");
Assert.assertTrue(plugin.isAllowed(new DummyHttpServletRequest(), g));
Assert.assertTrue(plugin.isAllowed(new DummyHttpServletRequest(), p));
}
use of org.opensolaris.opengrok.configuration.Group in project OpenGrok by OpenGrok.
the class AuthorizationPluginClassLoaderTest method testFalsePlugin.
@Test
public void testFalsePlugin() {
AuthorizationPluginClassLoader instance = new AuthorizationPluginClassLoader(pluginDirectory);
Class clazz = loadClass(instance, "opengrok.auth.plugin.FalsePlugin");
IAuthorizationPlugin plugin = getNewInstance(clazz);
Group g = new Group("group1");
Project p = new Project("project1");
Assert.assertFalse(plugin.isAllowed(new DummyHttpServletRequest(), g));
Assert.assertFalse(plugin.isAllowed(new DummyHttpServletRequest(), p));
}
Aggregations