/** * Adds Compliance Mode Filters to the original filter if running in Compliance mode. The addition * of filters can be by-passed by setting the ignoreComplianceFilter to true. */ private static String addComplianceModeFilters( String originalFilter, int objectType, boolean ignoreComplianceFilter) { try { // Modify search filters if complaince user deletion enabled // Ignore if explicitly specified. String modifiedFilter = originalFilter; if (!ignoreComplianceFilter && AMCompliance.isComplianceUserDeletionEnabled()) { StringBuilder sb = new StringBuilder(); switch (objectType) { case AMObject.USER: sb.append("(&").append(originalFilter); sb.append("(!(inetuserstatus=deleted)))"); modifiedFilter = sb.toString(); break; case AMObject.ORGANIZATION: sb.append("(&").append(originalFilter); sb.append("(!(inetdomainstatus=deleted)))"); modifiedFilter = sb.toString(); break; case AMObject.STATIC_GROUP: case AMObject.DYNAMIC_GROUP: case AMObject.ASSIGNABLE_DYNAMIC_GROUP: case AMObject.GROUP: sb.append("(&").append(originalFilter); sb.append("(!(inetgroupstatus=deleted)))"); modifiedFilter = sb.toString(); break; } if (debug.messageEnabled()) { debug.message( "AMSearchFilterManager." + "" + "addComplainceModeFilters() - objectType = " + objectType + ", Original Filter = " + originalFilter + ", Modified Filter = " + modifiedFilter); } return modifiedFilter; } } catch (AMException ae) { if (debug.warningEnabled()) { debug.warning( "AMSearchFilterManager." + "addComplianceModeFilters() Unable to determine if " + "\"User Compliance deletion mode\" is enabled or " + "disabled. Exception : ", ae); } } return originalFilter; }
/** Adds filters to eliminate admin groups if the Admin Group option is not enabled. */ private static String addAdminGroupFilters(String originalFilter, String orgDN, int objectType) { try { // Filter out Admin Groups if the option is NOT enabled if (!AMCompliance.isAdminGroupsEnabled(orgDN)) { String modifiedFilter = originalFilter; switch (objectType) { case AMObject.STATIC_GROUP: case AMObject.DYNAMIC_GROUP: case AMObject.ASSIGNABLE_DYNAMIC_GROUP: case AMObject.GROUP: StringBuilder sb = new StringBuilder(); sb.append("(&").append(originalFilter).append("(!("); sb.append(AMNamingAttrManager.getNamingAttr(AMObject.ASSIGNABLE_DYNAMIC_GROUP)); sb.append("=serviceadministrators))").append("(!("); sb.append(AMNamingAttrManager.getNamingAttr(AMObject.ASSIGNABLE_DYNAMIC_GROUP)); sb.append("=servicehelpdeskadministrators)))"); modifiedFilter = sb.toString(); } if (debug.messageEnabled()) { debug.message( "AMSearchFilterManager." + "addAdminGroupFilters() - objectType = " + objectType + ", orgDN = " + orgDN + ", Original filter: " + originalFilter + ", Modified filter = " + modifiedFilter); } return modifiedFilter; } } catch (AMException ae) { if (debug.warningEnabled()) { debug.warning( "AMSearchFilterManager.addAdminGroupFilters() " + "Unable to determine if \"Admin Groups\" " + "option is enabled or disabled. Exception : ", ae); } } return originalFilter; }