List searchAdminMods()

in src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java [636:724]


    List<Mod> searchAdminMods( UserAudit audit ) throws FinderException
    {
        List<Mod> modList = new ArrayList<>();
        LdapConnection ld = null;
        String auditRoot = Config.getInstance().getProperty( AUDIT_ROOT );

        try
        {
            String filter = "(&(|(objectclass=" + ACCESS_MOD_CLASS_NM + ")";
            filter += "(objectclass=" + ACCESS_ADD_CLASS_NM + "))";

            if ( StringUtils.isNotEmpty( audit.getDn() ) )
            {
                filter += "(" + REQDN + "=" + audit.getDn() + ")";
            }

            if ( StringUtils.isNotEmpty( audit.getObjName() ) )
            {
                filter += "(|(" + REQMOD + "=" + GlobalIds.FT_MODIFIER_CODE + ":= " + audit.getObjName() + ".";

                if ( StringUtils.isNotEmpty( audit.getOpName() ) )
                {
                    filter += audit.getOpName();
                }

                filter += "*)";
                filter += "(" + REQMOD + "=" + GlobalIds.FT_MODIFIER_CODE + ":+ " + audit.getObjName() + ".";

                if ( StringUtils.isNotEmpty( audit.getOpName() ) )
                {
                    filter += audit.getOpName();
                }

                filter += "*))";
            }

            if ( StringUtils.isNotEmpty( audit.getInternalUserId() ) )
            {
                filter += "(|(" + REQMOD + "=" + GlobalIds.FT_MODIFIER + ":= " + audit.getInternalUserId() + ")";
                filter += "(" + REQMOD + "=" + GlobalIds.FT_MODIFIER + ":+ " + audit.getInternalUserId() + "))";
            }

            if ( audit.getBeginDate() != null )
            {
                String szTime = TUtil.encodeGeneralizedTime( audit.getBeginDate() );
                filter += "(" + REQEND + ">=" + szTime + ")";
            }

            if ( audit.getEndDate() != null )
            {
                String szTime = TUtil.encodeGeneralizedTime( audit.getEndDate() );
                filter += "(" + REQEND + "<=" + szTime + ")";
            }

            filter += ")";
            //log.warn("filter=" + filter);
            ld = getLogConnection();
            try ( SearchCursor searchResults = search( ld, auditRoot,
                SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) ) )
            {
                long sequence = 0;
                while ( searchResults.next() )
                {
                    modList.add( getModEntityFromLdapEntry( searchResults.getEntry(), sequence++ ) );
                }
            }
            catch ( IOException i )
            {
                String error = "searchAdminMods caught IOException id=" + i.getMessage();
                throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, i );
            }
            catch ( CursorException e )
            {
                String error = "searchAdminMods caught CursorException id=" + e.getMessage();
                throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, e );
            }
        }
        catch ( LdapException e )
        {
            String error = "searchAdminMods caught LdapException id=" + e;
            throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, e );
        }
        finally
        {
            closeLogConnection( ld );
        }

        return modList;
    }