/** * convert a subject to a member, throw an invalid query exception if there is a problem, * with a descriptive cause * @param session * @param subject * @return the member */ public static Member convertSubjectToMember(GrouperSession session, Subject subject) { Member member = null; member = MemberFinder.findBySubject(session, subject, true); if (member == null) { throw new WsInvalidQueryException("Member is null after findBySubject"); } return member; }
/** * Determine if a given subject has been granted a Naming privilege through direct assignment * @param s * @param subject * @param stem * @param privilege * @return whether the specified subject has a specified privilege directly assigned for a specified stem * @throws MemberNotFoundException */ public static boolean hasSubjectImmPrivForStem(GrouperSession s,Subject subject,Stem stem,String privilege) throws MemberNotFoundException,SchemaException{ Map privs = getImmediateHas(s,GroupOrStem.findByStem(s,stem),MemberFinder.findBySubject(s,subject)); return privs.containsKey(privilege); }
/** * Determine if a given subject has been granted an Access privilege through direct assignment * @param s * @param subject * @param group * @param privilege * @return whether the specified subject has a specified privilege directly assigned for a specified group * @throws MemberNotFoundException */ public static boolean hasSubjectImmPrivForGroup(GrouperSession s,Subject subject,Group group,String privilege) throws MemberNotFoundException,SchemaException{ Map privs = getImmediateHas(s,GroupOrStem.findByGroup(s,group),MemberFinder.findBySubject(s,subject)); return privs.containsKey(privilege); }
public Object callback(GrouperSession grouperSession2) throws GrouperSessionException { //TODO also put this at the login step... Member member = MemberFinder.findBySubject(grouperSession2, SUBJECT, true); grouperContext.setLoggedInMemberId(member.getUuid()); return null; } });
Set allSet = new LinkedHashSet(); Member member = MemberFinder.findBySubject(s,s.getSubject()); for (int i = 0; i < privs.length; i++) { allSet.addAll(getGroupsOrStemsWhereMemberHasPriv(member,privs[i]));
/** * Given a GrouperSession s, determine all the GrouperGroups s.subject() * is a member of and return a Map where the keys are GrouperGroup keys * * @param s GrouperSession for authenticated user * @return Map where keys are GrouperGroup keys */ public static Map getMemberships(GrouperSession s) { Map memberships = null; memberships = new HashMap(); Member member = null; try { member = MemberFinder.findBySubject(s, s.getSubject()); } catch (Exception e) { throw new RuntimeException(e); } Set vals = member.getGroups(); Group group; Iterator it = vals.iterator(); while(it.hasNext()){ group = (Group) it.next(); memberships.put(group.getUuid(), Boolean.TRUE); } return memberships; }
public Object get(Object key) { //Map would override GrouperGroup values Object obj = super.get(key); if (obj == null) { //No value, so check the wrapped stem if("isDirect".equals(key)) { if(subject instanceof LazySubject) return GrouperHelper.isDirect((LazySubject)subject); try { Map tmpPrivMap = GrouperHelper.getImmediateHas(s,groupOrStem,MemberFinder.findBySubject(s,subject, true)); Boolean answer = new Boolean(tmpPrivMap.containsKey(privilege)); put("isDirect",answer); return answer; }catch(Exception e) { throw new RuntimeException(e.getMessage()); } } } if (obj == null) obj = ""; return obj; }
/** * Given a Group and Subject return the effective memberships keyed on * the via group * @param s * @param group * @param subject * @param field * @return Map keyed on via groups * @throws Exception */ public static Map getEffectiveMembershipsForGroupAndSubject(GrouperSession s,Group group,Subject subject,Field field) throws Exception{ Member member = MemberFinder.findBySubject(s,subject); Map res = new HashMap(); Set memberships = member.getEffectiveMemberships(field); Membership m; Iterator it = memberships.iterator(); while(it.hasNext()){ m = (Membership)it.next(); if(m.getGroup().equals(group)) res.put(m.getViaGroup(),m); } return res; }
/** * For a given subject determine all the custom list fields they appear in * @param s * @param subject * @return List of field names the subject is a member of * @throws Exception */ public static List getListFieldsForSubject(GrouperSession s,Subject subject) throws Exception{ Set lists = FieldFinder.findAllByType(FieldType.LIST); List res = new ArrayList(); Iterator it = lists.iterator(); Field field; Set memberships; while(it.hasNext()) { field = (Field)it.next(); if(!"members".equals(field.getName())) { memberships = MemberFinder.findBySubject(s,subject).getMemberships(field); if(memberships.size()>0) { res.add(field.getName()); } } } accumulateFields(res); return res; }
throws MemberNotFoundException,GroupNotFoundException,SchemaException,CompositeNotFoundException{ List ways = new ArrayList(); Member member = MemberFinder.findBySubject(s,subject); Set memberships = member.getMemberships(field); Membership gl;
/** * get the member id of the subject or null if not there * @return the member id if exists or null if not */ public String getMemberId() { if (this.subject != null) { GrouperSession grouperSession = GrouperSession.staticGrouperSession(false); //when converting json this is null, so dont do a query if just doing json beans if (grouperSession != null) { Member member = MemberFinder.findBySubject(grouperSession, this.getSubject(), false); if (member != null) { return member.getId(); } } } return null; }
Member member = MemberFinder.findBySubject(grouperSession, subject, true); memberIds.add(member.getUuid()); } else {
@Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { Member member = MemberFinder.findBySubject(grouperSession, SUBJECT, true); deprovisioningContainer.setDeprovisionedMemberId(member.getId());
/** * Supplement group maps with privilege info for provided subject * assuming subject has any privileges for this group * @param s * @param groups * @param subject * @return a List of embellished groups */ public static List embellishGroupMapsWithSubjectPrivs(GrouperSession s,List groups,Subject subject) throws Exception{ GroupAsMap group; Map privs=null; Member member = MemberFinder.findBySubject(s,subject); GroupOrStem gs = null; for (int i=0;i<groups.size();i++) { group = (GroupAsMap)groups.get(i); gs=GroupOrStem.findByGroup(s, (Group)group.getWrappedObject()); privs=getAllHas(s,gs,member); group.put("subjectPrivs", privs); group.put("privsSubject", subject.getId()); } return groups; }
Member member = MemberFinder.findBySubject(grouperSession, subject, false);
"/WEB-INF/grouperUi2/subject/subjectViewAudits.jsp")); Member member = MemberFinder.findBySubject(grouperSession, subject, false);
/** * retrieve the subject to act as * * @param actAsLookup that the caller wants to act as * @return the subject * @throws WsInvalidQueryException if there is a problem */ public static Subject retrieveSubjectActAs(WsSubjectLookup actAsLookup) throws WsInvalidQueryException { Subject actAsSubject = retrieveSubjectActAsHelper(actAsLookup); HooksContext.assignSubjectActAs(actAsSubject); //this is set in filter GrouperContext grouperContext = GrouperContext.retrieveDefaultContext(); GrouperSession grouperSession = GrouperSession.staticGrouperSession(false); GrouperSession rootSession = grouperSession == null ? GrouperSession.startRootSession(false) : grouperSession.internal_getRootSession(); Member member = MemberFinder.findBySubject(rootSession, actAsSubject, true); grouperContext.setLoggedInMemberIdActAs(member.getUuid()); return actAsSubject; }
Member member = MemberFinder.findBySubject(grouperSession, subject, false);
Member member = MemberFinder.findBySubject(grouperSession, subject, false);
Member member = MemberFinder.findBySubject(grouperSession, subject, true);