Search in sources :

Example 16 with Group

use of org.apache.wiki.auth.authorize.Group in project jspwiki by apache.

the class AclImplTest method setUp.

/**
 * We setup the following rules: Alice = may view Bob = may view, may edit
 * Charlie = may view Dave = may view, may comment groupAcl: FooGroup =
 * Alice, Bob - may edit BarGroup = Bob, Charlie - may view
 */
@Before
public void setUp() throws Exception {
    Properties props = TestEngine.getTestProperties();
    TestEngine engine = new TestEngine(props);
    m_groupMgr = engine.getGroupManager();
    m_session = WikiSessionTest.adminSession(engine);
    m_acl = new AclImpl();
    m_aclGroup = new AclImpl();
    m_groups = new HashMap<String, Group>();
    Principal uAlice = new WikiPrincipal("Alice");
    Principal uBob = new WikiPrincipal("Bob");
    Principal uCharlie = new WikiPrincipal("Charlie");
    Principal uDave = new WikiPrincipal("Dave");
    // Alice can view
    AclEntry ae = new AclEntryImpl();
    ae.addPermission(PagePermission.VIEW);
    ae.setPrincipal(uAlice);
    // Charlie can view
    AclEntry ae2 = new AclEntryImpl();
    ae2.addPermission(PagePermission.VIEW);
    ae2.setPrincipal(uCharlie);
    // Bob can view and edit (and by implication, comment)
    AclEntry ae3 = new AclEntryImpl();
    ae3.addPermission(PagePermission.VIEW);
    ae3.addPermission(PagePermission.EDIT);
    ae3.setPrincipal(uBob);
    // Dave can view and comment
    AclEntry ae4 = new AclEntryImpl();
    ae4.addPermission(PagePermission.VIEW);
    ae4.addPermission(PagePermission.COMMENT);
    ae4.setPrincipal(uDave);
    // Create ACL with Alice, Bob, Charlie, Dave
    m_acl.addEntry(ae);
    m_acl.addEntry(ae2);
    m_acl.addEntry(ae3);
    m_acl.addEntry(ae4);
    // Foo group includes Alice and Bob
    Group foo = m_groupMgr.parseGroup("FooGroup", "", true);
    m_groupMgr.setGroup(m_session, foo);
    foo.add(uAlice);
    foo.add(uBob);
    AclEntry ag1 = new AclEntryImpl();
    ag1.setPrincipal(foo.getPrincipal());
    ag1.addPermission(PagePermission.EDIT);
    m_aclGroup.addEntry(ag1);
    m_groups.put("FooGroup", foo);
    // Bar group includes Bob and Charlie
    Group bar = m_groupMgr.parseGroup("BarGroup", "", true);
    m_groupMgr.setGroup(m_session, bar);
    bar.add(uBob);
    bar.add(uCharlie);
    AclEntry ag2 = new AclEntryImpl();
    ag2.setPrincipal(bar.getPrincipal());
    ag2.addPermission(PagePermission.VIEW);
    m_aclGroup.addEntry(ag2);
    m_groups.put("BarGroup", bar);
}
Also used : Group(org.apache.wiki.auth.authorize.Group) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) TestEngine(org.apache.wiki.TestEngine) Properties(java.util.Properties) WikiPrincipal(org.apache.wiki.auth.WikiPrincipal) Principal(java.security.Principal) GroupPrincipal(org.apache.wiki.auth.GroupPrincipal) Before(org.junit.Before)

Aggregations

Group (org.apache.wiki.auth.authorize.Group)16 WikiSessionTest (org.apache.wiki.WikiSessionTest)11 Test (org.junit.Test)11 Principal (java.security.Principal)10 WikiSession (org.apache.wiki.WikiSession)7 UnresolvedPrincipal (org.apache.wiki.auth.acl.UnresolvedPrincipal)6 GroupManager (org.apache.wiki.auth.authorize.GroupManager)4 Role (org.apache.wiki.auth.authorize.Role)4 UserProfile (org.apache.wiki.auth.user.UserProfile)3 Properties (java.util.Properties)2 TestEngine (org.apache.wiki.TestEngine)2 GroupPrincipal (org.apache.wiki.auth.GroupPrincipal)2 WikiPrincipal (org.apache.wiki.auth.WikiPrincipal)2 Before (org.junit.Before)2 PageManager (org.apache.wiki.PageManager)1 WikiPage (org.apache.wiki.WikiPage)1 NoSuchPrincipalException (org.apache.wiki.auth.NoSuchPrincipalException)1 UserManager (org.apache.wiki.auth.UserManager)1 WikiSecurityException (org.apache.wiki.auth.WikiSecurityException)1 GroupDatabase (org.apache.wiki.auth.authorize.GroupDatabase)1