edu.internet2.middleware.grouper.privs
Class GrouperNonDbAccessAdapter

java.lang.Object
  extended by edu.internet2.middleware.grouper.privs.BaseAccessAdapter
      extended by edu.internet2.middleware.grouper.privs.GrouperNonDbAccessAdapter
All Implemented Interfaces:
AccessAdapter
Direct Known Subclasses:
GrouperAccessAdapter

public class GrouperNonDbAccessAdapter
extends BaseAccessAdapter
implements AccessAdapter

This is the base grouper implementation which implements the required access adapter methods, but not the db specific ones. This should be slower and more explicit than the GrouperAccessAdapter (subclass)

Version:
$Id: GrouperNonDbAccessAdapter.java,v 1.8 2009-12-07 07:31:09 mchyzer Exp $
Author:
blair christensen.

Constructor Summary
GrouperNonDbAccessAdapter()
           
 
Method Summary
 Set<Group> getGroupsWhereSubjectDoesntHavePrivilege(GrouperSession grouperSession, String stemId, Stem.Scope scope, edu.internet2.middleware.subject.Subject subject, Privilege privilege, boolean considerAllSubject, String sqlLikeString)
          Get all groups where this subject doesnt have this privilege.
 Set<Group> getGroupsWhereSubjectHasPriv(GrouperSession s, edu.internet2.middleware.subject.Subject subj, Privilege priv)
          Get all groups where this subject has this privilege.
 Set getPrivs(GrouperSession s, Group g, edu.internet2.middleware.subject.Subject subj)
          Get all privileges held by this subject on this group.
 Set<Stem> getStemsWhereGroupThatSubjectHasPrivilege(GrouperSession grouperSession, edu.internet2.middleware.subject.Subject subject, Privilege privilege)
          get stems where a group exists where the subject has privilege
 Set getSubjectsWithPriv(GrouperSession s, Group g, Privilege priv)
          Get all subjects with this privilege on this group.
 void grantPriv(GrouperSession s, Group g, edu.internet2.middleware.subject.Subject subj, Privilege priv, String uuid)
          Grant the privilege to the subject on this group.
 boolean hasPriv(GrouperSession s, Group g, edu.internet2.middleware.subject.Subject subj, Privilege priv)
          Check whether the subject has this privilege on this group.
 void privilegeCopy(GrouperSession s, Group g1, Group g2, Privilege priv)
          Copies privileges for subjects that have the specified privilege on g1 to g2.
 void privilegeCopy(GrouperSession s, edu.internet2.middleware.subject.Subject subj1, edu.internet2.middleware.subject.Subject subj2, Privilege priv)
          Copies privileges of type priv on any subject for the given Subject subj1 to the given Subject subj2.
 Set<PrivilegeSubjectContainer> retrievePrivileges(GrouperSession grouperSession, Group group, Set<Privilege> privileges, MembershipType membershipType, QueryPaging queryPaging, Set<Member> additionalMembers)
          get a list of privilege subjects, there are no results with the same subject/privilege combination
 void revokeAllPrivilegesForSubject(GrouperSession grouperSession, edu.internet2.middleware.subject.Subject subject)
          Revoke all access privileges that this subject has.
 void revokePriv(GrouperSession s, Group g, Privilege priv)
          Revoke this privilege from everyone on this group.
 void revokePriv(GrouperSession s, Group g, edu.internet2.middleware.subject.Subject subj, Privilege priv)
          Revoke the privilege from the subject on this group.
 
Methods inherited from class edu.internet2.middleware.grouper.privs.BaseAccessAdapter
hqlFilterGroupsNotWithPrivWhereClause, hqlFilterGroupsWhereClause, postHqlFilterGroups, postHqlFilterMemberships, postHqlFilterStemsWithGroups
 
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.AccessAdapter
hqlFilterGroupsNotWithPrivWhereClause, hqlFilterGroupsWhereClause, postHqlFilterGroups, postHqlFilterMemberships, postHqlFilterStemsWithGroups
 

Constructor Detail

GrouperNonDbAccessAdapter

public GrouperNonDbAccessAdapter()
Method Detail

getSubjectsWithPriv

public Set getSubjectsWithPriv(GrouperSession s,
                               Group g,
                               Privilege priv)
                        throws SchemaException
Description copied from interface: AccessAdapter
Get all subjects with this privilege on this group.
 Set admins = ap.getSubjectsWithPriv(s, g, AccessPrivilege.ADMIN);
 

Specified by:
getSubjectsWithPriv in interface AccessAdapter
Parameters:
s - Get privileges within this session context.
g - Get privileges on this group.
priv - Get this privilege.
Returns:
Set of Subject objects.
Throws:
SchemaException
See Also:
AccessAdapter.getSubjectsWithPriv(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.grouper.Group, edu.internet2.middleware.grouper.privs.Privilege)

getGroupsWhereSubjectHasPriv

public Set<Group> getGroupsWhereSubjectHasPriv(GrouperSession s,
                                               edu.internet2.middleware.subject.Subject subj,
                                               Privilege priv)
                                        throws SchemaException
Get all groups where this subject has this privilege.
 try {
   Set isAdmin = ap.getGroupsWhereSubjectHasPriv(
     s, subj, AccessPrivilege.ADMIN
   );
 }
 catch (SchemaException eS) {
   // Invalid priv
 }
 

Specified by:
getGroupsWhereSubjectHasPriv in interface AccessAdapter
Parameters:
s - Get privileges within this session context.
subj - Get privileges for this subject.
priv - Get this privilege.
Returns:
Set of Group objects.
Throws:
SchemaException

getGroupsWhereSubjectDoesntHavePrivilege

public Set<Group> getGroupsWhereSubjectDoesntHavePrivilege(GrouperSession grouperSession,
                                                           String stemId,
                                                           Stem.Scope scope,
                                                           edu.internet2.middleware.subject.Subject subject,
                                                           Privilege privilege,
                                                           boolean considerAllSubject,
                                                           String sqlLikeString)
Get all groups where this subject doesnt have this privilege.

Specified by:
getGroupsWhereSubjectDoesntHavePrivilege in interface AccessAdapter
Parameters:
grouperSession -
stemId -
scope -
subject -
privilege -
considerAllSubject -
sqlLikeString -
Returns:
groups

getStemsWhereGroupThatSubjectHasPrivilege

public Set<Stem> getStemsWhereGroupThatSubjectHasPrivilege(GrouperSession grouperSession,
                                                           edu.internet2.middleware.subject.Subject subject,
                                                           Privilege privilege)
Description copied from interface: AccessAdapter
get stems where a group exists where the subject has privilege

Specified by:
getStemsWhereGroupThatSubjectHasPrivilege in interface AccessAdapter
Returns:
the stems
See Also:
AccessAdapter.getStemsWhereGroupThatSubjectHasPrivilege(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege)

getPrivs

public Set getPrivs(GrouperSession s,
                    Group g,
                    edu.internet2.middleware.subject.Subject subj)
Get all privileges held by this subject on this group.
 Set privs = ap.getPrivs(s, g, subj);
 

Specified by:
getPrivs in interface AccessAdapter
Parameters:
s - Get privileges within this session context.
g - Get privileges on this group.
subj - Get privileges for this member.
Returns:
Set of privileges.

grantPriv

public void grantPriv(GrouperSession s,
                      Group g,
                      edu.internet2.middleware.subject.Subject subj,
                      Privilege priv,
                      String uuid)
               throws GrantPrivilegeException,
                      InsufficientPrivilegeException,
                      SchemaException
Grant the privilege to the subject on this group.
 try {
   ap.grantPriv(s, g, subj, AccessPrivilege.ADMIN);
 }
 catch (GrantPrivilegeException e0) {
   // Unable to grant the privilege
 }
 catch (InsufficientPrivilegeException e1) {
   // Not privileged to grant the privilege
 }
 

Specified by:
grantPriv in interface AccessAdapter
Parameters:
s - Grant privilege in this session context.
g - Grant privilege on this group.
subj - Grant privilege to this subject.
priv - Grant this privilege.
uuid -
Throws:
GrantPrivilegeException
InsufficientPrivilegeException
SchemaException

hasPriv

public boolean hasPriv(GrouperSession s,
                       Group g,
                       edu.internet2.middleware.subject.Subject subj,
                       Privilege priv)
                throws SchemaException
Description copied from interface: AccessAdapter
Check whether the subject has this privilege on this group.
 try {
   ap.hasPriv(s, g, subject, AccessPrivilege.ADMIN);
 }
 catch (SchemaException e) {
   // Invalid privilege
 }
 

Specified by:
hasPriv in interface AccessAdapter
Parameters:
s - Check privilege in this session context.
g - Check privilege on this group.
subj - Check privilege for this subject.
priv - Check this privilege.
Returns:
if has priv
Throws:
SchemaException
See Also:
AccessAdapter.hasPriv(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.grouper.Group, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege)

privilegeCopy

public void privilegeCopy(GrouperSession s,
                          Group g1,
                          Group g2,
                          Privilege priv)
                   throws InsufficientPrivilegeException,
                          GrantPrivilegeException,
                          SchemaException
Copies privileges for subjects that have the specified privilege on g1 to g2.

Specified by:
privilegeCopy in interface AccessAdapter
Parameters:
s -
g1 -
g2 -
priv -
Throws:
InsufficientPrivilegeException
GrantPrivilegeException
SchemaException

privilegeCopy

public void privilegeCopy(GrouperSession s,
                          edu.internet2.middleware.subject.Subject subj1,
                          edu.internet2.middleware.subject.Subject subj2,
                          Privilege priv)
                   throws InsufficientPrivilegeException,
                          GrantPrivilegeException,
                          SchemaException
Copies privileges of type priv on any subject for the given Subject subj1 to the given Subject subj2. For instance, if subj1 has ADMIN privilege to Group x, this method will result with subj2 having ADMIN privilege to Group x.

Specified by:
privilegeCopy in interface AccessAdapter
Parameters:
s -
subj1 -
subj2 -
priv -
Throws:
InsufficientPrivilegeException
GrantPrivilegeException
SchemaException

revokePriv

public void revokePriv(GrouperSession s,
                       Group g,
                       Privilege priv)
                throws InsufficientPrivilegeException,
                       RevokePrivilegeException,
                       SchemaException
Revoke this privilege from everyone on this group.
 try {
   ap.revokePriv(s, g, AccessPrivilege.ADMIN);
 }
 catch (InsufficientPrivilegeException eIP) {
   // Not privileged to revoke the privilege
 }
 catch (RevokePrivilegeException eRP) {
   // Unable to revoke the privilege
 }
 

Specified by:
revokePriv in interface AccessAdapter
Parameters:
s - Revoke privilege in this session context.
g - Revoke privilege on this group.
priv - Revoke this privilege.
Throws:
InsufficientPrivilegeException
RevokePrivilegeException
SchemaException

revokePriv

public void revokePriv(GrouperSession s,
                       Group g,
                       edu.internet2.middleware.subject.Subject subj,
                       Privilege priv)
                throws InsufficientPrivilegeException,
                       RevokePrivilegeException,
                       SchemaException
Revoke the privilege from the subject on this group.
 try {
   ap.revokePriv(s, g, subj, AccessPrivilege.ADMIN);
 }
 catch (InsufficientPrivilegeException e0) {
   // Not privileged to grant the privilege
 }
 catch (RevokePrivilegeException e2) {
   // Unable to revoke the privilege
 }
 

Specified by:
revokePriv in interface AccessAdapter
Parameters:
s - Revoke privilege in this session context.
g - Revoke privilege on this group.
subj - Revoke privilege from this subject.
priv - Revoke this privilege.
Throws:
InsufficientPrivilegeException
RevokePrivilegeException
SchemaException

revokeAllPrivilegesForSubject

public void revokeAllPrivilegesForSubject(GrouperSession grouperSession,
                                          edu.internet2.middleware.subject.Subject subject)
Description copied from interface: AccessAdapter
Revoke all access privileges that this subject has.

Specified by:
revokeAllPrivilegesForSubject in interface AccessAdapter
See Also:
AccessAdapter.revokeAllPrivilegesForSubject(edu.internet2.middleware.grouper.GrouperSession, edu.internet2.middleware.subject.Subject)

retrievePrivileges

public Set<PrivilegeSubjectContainer> retrievePrivileges(GrouperSession grouperSession,
                                                         Group group,
                                                         Set<Privilege> privileges,
                                                         MembershipType membershipType,
                                                         QueryPaging queryPaging,
                                                         Set<Member> additionalMembers)
Description copied from interface: AccessAdapter
get a list of privilege subjects, there are no results with the same subject/privilege combination

Specified by:
retrievePrivileges in interface AccessAdapter
Parameters:
grouperSession - grouper session
group - to search on
privileges - if blank, get all
membershipType - if immediate, effective, or blank for all
queryPaging - if a certain page should be returned based on subject
additionalMembers - additional members to query that the user is finding or adding
Returns:
the privilege subject combinations
See Also:
edu.internet2.middleware.grouper.privsAccessAdapter#retrievePrivileges(edu.internet2.middleware.grouper.GrouperSession, Group, java.util.Set, edu.internet2.middleware.grouper.membership.MembershipType, edu.internet2.middleware.grouper.internal.dao.QueryPaging, Set)