edu.internet2.middleware.grouper
Class GrouperNamingAdapter

java.lang.Object
  extended by edu.internet2.middleware.grouper.privs.BaseNamingAdapter
      extended by edu.internet2.middleware.grouper.privs.GrouperNonDbNamingAdapter
          extended by edu.internet2.middleware.grouper.GrouperNamingAdapter
All Implemented Interfaces:
NamingAdapter

public class GrouperNamingAdapter
extends GrouperNonDbNamingAdapter

Default implementation of the Grouper NamingPrivilege interface.

This implementation uses the Groups Registry and custom list types to manage naming privileges.

Version:
$Id: GrouperNamingAdapter.java,v 1.85 2009-10-03 13:47:12 shilen Exp $
Author:
blair christensen.

Constructor Summary
GrouperNamingAdapter()
           
 
Method Summary
 boolean hqlFilterStemsNotWithPrivWhereClause(GrouperSession grouperSession, edu.internet2.middleware.subject.Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Privilege privilege, boolean considerAllSubject)
          for a stem query, check to make sure the subject cant see the records (if filtering HQL, you can do the postHqlFilterStems instead if you like).
 boolean hqlFilterStemsWhereClause(GrouperSession grouperSession, edu.internet2.middleware.subject.Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Set<Privilege> privInSet)
          for a stem query, check to make sure the subject can see the records (if filtering HQL, you can do the postHqlFilterGroups instead if you like).
 Set<Stem> postHqlFilterStems(GrouperSession grouperSession, Set<Stem> inputStems, edu.internet2.middleware.subject.Subject subject, Set<Privilege> privInSet)
          after HQL is run, filter stems.
 
Methods inherited from class edu.internet2.middleware.grouper.privs.GrouperNonDbNamingAdapter
getPrivs, getStemsWhereSubjectDoesntHavePrivilege, getStemsWhereSubjectHasPriv, getSubjectsWithPriv, grantPriv, hasPriv, privilegeCopy, privilegeCopy, revokeAllPrivilegesForSubject, revokePriv, revokePriv
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GrouperNamingAdapter

public GrouperNamingAdapter()
Method Detail

hqlFilterStemsWhereClause

public boolean hqlFilterStemsWhereClause(GrouperSession grouperSession,
                                         edu.internet2.middleware.subject.Subject subject,
                                         HqlQuery hqlQuery,
                                         StringBuilder hql,
                                         String stemColumn,
                                         Set<Privilege> privInSet)
Description copied from interface: NamingAdapter
for a stem query, check to make sure the subject can see the records (if filtering HQL, you can do the postHqlFilterGroups instead if you like). Note, this joins to tables, so the queries should probably be "distinct"

Specified by:
hqlFilterStemsWhereClause in interface NamingAdapter
Overrides:
hqlFilterStemsWhereClause in class BaseNamingAdapter
subject - which needs view access to the groups
hql - is the select and part part (hql prefix)
stemColumn - is the name of the stem column to join to
privInSet - find a privilege which is in this set (e.g. for view, send all access privs). There are pre-canned sets in AccessAdapter
Returns:
if the query was changed
See Also:
BaseNamingAdapter.hqlFilterStemsWhereClause(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.hibernate.HqlQuery, java.lang.StringBuilder, java.lang.String, java.util.Set)

postHqlFilterStems

public Set<Stem> postHqlFilterStems(GrouperSession grouperSession,
                                    Set<Stem> inputStems,
                                    edu.internet2.middleware.subject.Subject subject,
                                    Set<Privilege> privInSet)
Description copied from interface: NamingAdapter
after HQL is run, filter stems. If you are filtering in HQL, then dont filter here

Specified by:
postHqlFilterStems in interface NamingAdapter
Overrides:
postHqlFilterStems in class BaseNamingAdapter
subject - which needs view access to the groups
privInSet - find a privilege which is in this set (e.g. for view, send all access privs). There are pre-canned sets in NamingPrivilege
Returns:
the set of filtered groups
See Also:
BaseNamingAdapter.postHqlFilterStems(edu.internet2.middleware.grouper.GrouperSession, java.util.Set, edu.internet2.middleware.subject.Subject, java.util.Set)

hqlFilterStemsNotWithPrivWhereClause

public boolean hqlFilterStemsNotWithPrivWhereClause(GrouperSession grouperSession,
                                                    edu.internet2.middleware.subject.Subject subject,
                                                    HqlQuery hqlQuery,
                                                    StringBuilder hql,
                                                    String stemColumn,
                                                    Privilege privilege,
                                                    boolean considerAllSubject)
Description copied from interface: NamingAdapter
for a stem query, check to make sure the subject cant see the records (if filtering HQL, you can do the postHqlFilterStems instead if you like).

Specified by:
hqlFilterStemsNotWithPrivWhereClause in interface NamingAdapter
Overrides:
hqlFilterStemsNotWithPrivWhereClause in class BaseNamingAdapter
subject - which needs view access to the groups
hql - is the select and part part (hql prefix)
stemColumn - is the name of the stem column to join to
privilege - find a privilege which is in this set (e.g. naming privs).
considerAllSubject - if true, then consider GrouperAll when seeing if doesnt have privilege, else do consider
Returns:
if the query was changed
See Also:
NamingAdapter.hqlFilterStemsNotWithPrivWhereClause(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.hibernate.HqlQuery, java.lang.StringBuilder, java.lang.String, Privilege, boolean)