edu.internet2.middleware.grouper.privs
Class BaseNamingAdapter

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

public abstract class BaseNamingAdapter
extends Object
implements NamingAdapter


Constructor Summary
BaseNamingAdapter()
           
 
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 java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface edu.internet2.middleware.grouper.privs.NamingAdapter
getPrivs, getStemsWhereSubjectDoesntHavePrivilege, getStemsWhereSubjectHasPriv, getSubjectsWithPriv, grantPriv, hasPriv, privilegeCopy, privilegeCopy, revokeAllPrivilegesForSubject, revokePriv, revokePriv
 

Constructor Detail

BaseNamingAdapter

public BaseNamingAdapter()
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
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:
NamingAdapter.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
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:
NamingAdapter.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
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)