package org.cagrid.gridgrouper.service.impl.testutils; import edu.internet2.middleware.grouper.Group; import edu.internet2.middleware.grouper.GroupFinder; import edu.internet2.middleware.grouper.GroupNotFoundException; import edu.internet2.middleware.grouper.GrouperSession; import edu.internet2.middleware.grouper.Membership; import edu.internet2.middleware.grouper.OwnerNotFoundException; import edu.internet2.middleware.subject.AnonymousGridUserSubject; import edu.internet2.middleware.subject.Subject; import org.cagrid.gridgrouper.model.GroupDescriptor; import org.cagrid.gridgrouper.model.GroupIdentifier; import org.cagrid.gridgrouper.model.GroupPrivilege; import org.cagrid.gridgrouper.model.GroupPrivilegeType; import org.cagrid.gridgrouper.model.MemberDescriptor; import org.cagrid.gridgrouper.model.StemDescriptor; import org.cagrid.gridgrouper.model.StemIdentifier; import org.cagrid.gridgrouper.service.GridGrouperService; import org.cagrid.gridgrouper.service.impl.GridGrouper; import org.cagrid.gridgrouper.service.impl.util.SubjectUtils; import java.util.Iterator; import java.util.List; import java.util.Set; public class Utils { private static final String SUPER_USER = "/O=OSU/OU=BMI/OU=caGrid/OU=Dorian/OU=cagrid05/OU=IdP [1]/CN=super admin"; public static void printMemberDesciptor(MemberDescriptor m){ System.out.println("UUID: "+m.getUUID()); System.out.println("Name: "+m.getSubjectName()); System.out.println("Id: "+m.getSubjectId()); System.out.println("Type: "+m.getMemberType().value()); } public static StemIdentifier getStemIdentifier(StemDescriptor des) { StemIdentifier id = new StemIdentifier(); id.setStemName(des.getName()); return id; } public static StemIdentifier getRootStemIdentifier() { StemIdentifier id = new StemIdentifier(); id.setStemName(GridGrouperService.ROOT_STEM); return id; } public static GroupIdentifier getGroupIdentifier(GroupDescriptor des) { GroupIdentifier id = new GroupIdentifier(); id.setGroupName(des.getName()); return id; } public static void printMemberships(GroupDescriptor grp) throws Exception { printMemberships(grp, AnonymousGridUserSubject.ANONYMOUS_GRID_USER_ID); } public static void printMemberships(GroupDescriptor grp, String userId) throws Exception { Subject subject = SubjectUtils.getSubject(userId); GrouperSession session = GrouperSession.start(subject); Group group = GroupFinder.findByName(session, grp.getName()); System.out.println(); System.out.println("All Memberships of " + group.getName()); System.out.println("-------------------------------------------------"); System.out.println(); Set set = group.getMemberships(); Iterator itr = set.iterator(); while (itr.hasNext()) { Membership m = (Membership) itr.next(); System.out.println("Member Name: " + m.getMember().getSubject().getId()); System.out.println("Depth: " + m.getDepth()); System.out.println("Group: " + m.getGroup().getName()); try { System.out.println("Via Group: " + m.getViaGroup().getName()); } catch (GroupNotFoundException e) { System.out.println("Via Group: NONE"); } try { System.out.println("Via Owner: " + m.getVia().getUuid()); } catch (OwnerNotFoundException e) { System.out.println("Via Owner: NONE"); } System.out.println(); } } public static void printCompositeMemberships(GroupDescriptor grp) throws Exception { Subject subject = SubjectUtils.getSubject(AnonymousGridUserSubject.ANONYMOUS_GRID_USER_ID); GrouperSession session = GrouperSession.start(subject); Group group = GroupFinder.findByName(session, grp.getName()); System.out.println(); System.out.println("Composite Memberships of " + group.getName()); System.out.println("-------------------------------------------------"); System.out.println(); Set set = group.getCompositeMemberships(); Iterator itr = set.iterator(); while (itr.hasNext()) { Membership m = (Membership) itr.next(); System.out.println("Member Name: " + m.getMember().getSubject().getId()); System.out.println("Depth: " + m.getDepth()); System.out.println("Group: " + m.getGroup().getName()); try { System.out.println("Via Group: " + m.getViaGroup().getName()); } catch (GroupNotFoundException e) { System.out.println("Via Group: NONE"); } try { System.out.println("Via Owner: " + m.getVia().getUuid()); } catch (OwnerNotFoundException e) { System.out.println("Via Owner: NONE"); } System.out.println(); } } public static void printUsersWithPrivilege(GroupDescriptor des, GroupPrivilegeType priv) throws Exception { GridGrouper grouper = new GridGrouper(); List<String> subs = grouper.getSubjectsWithGroupPrivilege(SUPER_USER, Utils.getGroupIdentifier(des), priv); System.out.println("Users with the Privilege, " + priv.value() + " on the group " + des.getName() + ":"); System.out.println(""); for (String sub : subs) { System.out.println(sub); } System.out.println(""); } public static void printPrivilegesForUser(GroupDescriptor des, String user) throws Exception { GridGrouper grouper = new GridGrouper(); List<GroupPrivilege> privs = grouper.getGroupPrivileges(SUPER_USER, Utils.getGroupIdentifier(des), user); System.out.println("Privileges for " + user + ", on the group " + des.getName() + ":"); System.out.println(""); for (GroupPrivilege gp : privs) { System.out.println(gp.getPrivilegeType().value()); } System.out.println(""); } }