/**
* {@inheritDoc}
*/
public boolean compare( NextInterceptor next, CompareOperationContext compareContext ) throws LdapException
{
CoreSession session = compareContext.getSession();
Dn dn = compareContext.getDn();
String oid = compareContext.getOid();
Value<?> value = compareContext.getValue();
Entry entry = compareContext.getOriginalEntry();
LdapPrincipal principal = session.getEffectivePrincipal();
Dn principalDn = principal.getDn();
if ( isPrincipalAnAdministrator( principalDn ) || !session.getDirectoryService().isAccessControlEnabled() )
{
return next.compare( compareContext );
}
Set<Dn> userGroups = groupCache.getGroups( principalDn.getNormName() );