Search in sources :

Example 1 with Group

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();
        }
    }
}
Also used : Group(org.opensolaris.opengrok.configuration.Group) Project(org.opensolaris.opengrok.configuration.Project)

Example 2 with Group

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;
}
Also used : Group(org.opensolaris.opengrok.configuration.Group)

Example 3 with Group

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());
}
Also used : Group(org.opensolaris.opengrok.configuration.Group) Project(org.opensolaris.opengrok.configuration.Project) RuntimeEnvironment(org.opensolaris.opengrok.configuration.RuntimeEnvironment) Test(org.junit.Test)

Example 4 with Group

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));
}
Also used : Group(org.opensolaris.opengrok.configuration.Group) Project(org.opensolaris.opengrok.configuration.Project) DummyHttpServletRequest(org.opensolaris.opengrok.web.DummyHttpServletRequest) Test(org.junit.Test)

Example 5 with Group

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));
}
Also used : Group(org.opensolaris.opengrok.configuration.Group) Project(org.opensolaris.opengrok.configuration.Project) DummyHttpServletRequest(org.opensolaris.opengrok.web.DummyHttpServletRequest) Test(org.junit.Test)

Aggregations

Group (org.opensolaris.opengrok.configuration.Group)27 Test (org.junit.Test)16 Project (org.opensolaris.opengrok.configuration.Project)15 TreeSet (java.util.TreeSet)6 RuntimeEnvironment (org.opensolaris.opengrok.configuration.RuntimeEnvironment)5 File (java.io.File)4 ArrayList (java.util.ArrayList)4 List (java.util.List)4 RepositoryInfo (org.opensolaris.opengrok.history.RepositoryInfo)4 IOException (java.io.IOException)3 Set (java.util.Set)3 Collectors (java.util.stream.Collectors)3 Before (org.junit.Before)3 HistoryGuru (org.opensolaris.opengrok.history.HistoryGuru)3 IndexDatabase (org.opensolaris.opengrok.index.IndexDatabase)3 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2 After (org.junit.After)2 Assert (org.junit.Assert)2 Assert.assertTrue (org.junit.Assert.assertTrue)2 Assume (org.junit.Assume)2