Class GrouperSystemNamingResolver
java.lang.Object
edu.internet2.middleware.grouper.privs.NamingResolverDecorator
edu.internet2.middleware.grouper.privs.GrouperSystemNamingResolver
- All Implemented Interfaces:
NamingResolver
Decorator that provides GrouperSystem privilege resolution for
NamingResolver
.
- Since:
- 1.2.1
- Version:
- $Id: GrouperSystemNamingResolver.java,v 1.11 2009-09-21 06:14:26 mchyzer Exp $
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
flush cache if caching resolverboolean
hasPrivilege
(Stem stem, Subject subject, Privilege privilege) Check whether subject has privilege on group.boolean
hqlFilterStemsNotWithPrivWhereClause
(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String groupColumn, Privilege privilege, boolean considerAllSubject) for a stem query, check to make sure the subject doesnt have privsboolean
hqlFilterStemsWhereClause
(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).after HQL is run, filter stems.Methods inherited from class edu.internet2.middleware.grouper.privs.NamingResolverDecorator
getDecoratedResolver, getGrouperSession, getPrivileges, getStemsWhereSubjectDoesHavePrivilege, getStemsWhereSubjectDoesntHavePrivilege, getStemsWhereSubjectHasPrivilege, getSubjectsWithPrivilege, grantPrivilege, hqlFilterStemsWithPrivWhereClause, privilegeCopy, privilegeCopy, revokeAllPrivilegesForSubject, revokePrivilege, revokePrivilege, stop
-
Constructor Details
-
GrouperSystemNamingResolver
- Parameters:
resolver
-- Since:
- 1.2.1
-
-
Method Details
-
flushCache
public void flushCache()Description copied from interface:NamingResolver
flush cache if caching resolver- Specified by:
flushCache
in interfaceNamingResolver
- Overrides:
flushCache
in classNamingResolverDecorator
- See Also:
-
hasPrivilege
public boolean hasPrivilege(Stem stem, Subject subject, Privilege privilege) throws IllegalArgumentException Description copied from interface:NamingResolver
Check whether subject has privilege on group.- Specified by:
hasPrivilege
in interfaceNamingResolver
- Overrides:
hasPrivilege
in classNamingResolverDecorator
- Returns:
- if has privilege
- Throws:
IllegalArgumentException
- if any parameter is null.- Since:
- 1.2.1
- See Also:
-
hqlFilterStemsWhereClause
public boolean hqlFilterStemsWhereClause(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Set<Privilege> privInSet) Description copied from interface:NamingResolver
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 interfaceNamingResolver
- Overrides:
hqlFilterStemsWhereClause
in classNamingResolverDecorator
- Parameters:
subject
- which needs view access to the groupshql
- is the select and part part (hql prefix)stemColumn
- is the name of the stem column to join toprivInSet
- 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:
-
postHqlFilterStems
Description copied from interface:NamingResolver
after HQL is run, filter stems. If you are filtering in HQL, then dont filter here- Specified by:
postHqlFilterStems
in interfaceNamingResolver
- Overrides:
postHqlFilterStems
in classNamingResolverDecorator
subject
- which needs view access to the groupsprivInSet
- 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:
-
hqlFilterStemsNotWithPrivWhereClause
public boolean hqlFilterStemsNotWithPrivWhereClause(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String groupColumn, Privilege privilege, boolean considerAllSubject) Description copied from interface:NamingResolver
for a stem query, check to make sure the subject doesnt have privs- Specified by:
hqlFilterStemsNotWithPrivWhereClause
in interfaceNamingResolver
- Overrides:
hqlFilterStemsNotWithPrivWhereClause
in classNamingResolverDecorator
- Parameters:
subject
- which needs view access to the groupshql
- the select and current from partgroupColumn
- is the name of the group column to join toprivilege
- find a privilege which is in this set (e.g. stem or create)considerAllSubject
- if true, then consider GrouperAll when seeign if subject has priv, else do not- Returns:
- if the statement was changed
- See Also:
-