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 );
}