/** * Adds OU conditions to an SQL query.<p> * * @param select the query * @param users the user table alias * @param allowedOus the allowed ous */ protected void addAllowedOuCondition( CmsSelectQuery select, TableAlias users, List<CmsOrganizationalUnit> allowedOus) { if ((allowedOus != null) && !allowedOus.isEmpty()) { CmsCompositeQueryFragment ouCondition = new CmsCompositeQueryFragment(); ouCondition.setPrefix("("); ouCondition.setSuffix(")"); ouCondition.setSeparator(" OR "); for (CmsOrganizationalUnit ou : allowedOus) { String ouName = CmsStringUtil.joinPaths("/", ou.getName()); ouCondition.add(new CmsSimpleQueryFragment(users.column(colOu()) + " = ? ", ouName)); } select.addCondition(ouCondition); } }
/** * @see org.opencms.db.I_CmsQueryFragment#visit(org.opencms.db.CmsStatementBuilder) */ public void visit(CmsStatementBuilder builder) { if (m_useWindowFunctions) { I_CmsQueryFragment order = m_select.getOrdering(); assert order != null; CmsCompositeQueryFragment rownumFragment = new CmsCompositeQueryFragment(); rownumFragment.add(new CmsSimpleQueryFragment("ROW_NUMBER() OVER (ORDER BY ")); rownumFragment.add(order); rownumFragment.add(new CmsSimpleQueryFragment(") AS rownumber")); m_select.addColumn(rownumFragment); builder.add("SELECT * FROM ( "); m_select.visit(builder); int start = 1 + (m_pageSize * (m_page - 1)); int end = (start + m_pageSize) - 1; builder.add(")"); if (m_nameSubquery) { builder.add(" AS rnsq "); } builder.add(" WHERE rownumber BETWEEN " + start + " AND " + end); } else { m_select.visit(builder); int offset = (m_page - 1) * m_pageSize; builder.add("\nLIMIT " + m_pageSize + " OFFSET " + offset); } } }
CmsCompositeQueryFragment groupClause = new CmsCompositeQueryFragment(); groupClause.setSeparator(" OR "); for (CmsGroup grp : anyGroups) { new CmsSimpleQueryFragment("GU." + colGroupUserGroupId() + " = ?", grp.getId().toString())); CmsCompositeQueryFragment existsClause = new CmsCompositeQueryFragment(); existsClause.add( new CmsSimpleQueryFragment( CmsCompositeQueryFragment groupClause = new CmsCompositeQueryFragment(); groupClause.setPrefix("("); groupClause.setSuffix(")"); new CmsSimpleQueryFragment("GU." + colGroupUserGroupId() + " = ?", grp.getId().toString())); CmsCompositeQueryFragment notExistsClause = new CmsCompositeQueryFragment(); notExistsClause.add( new CmsSimpleQueryFragment(
searchFilter = searchFilter.toLowerCase(); CmsCompositeQueryFragment searchCondition = new CmsCompositeQueryFragment(); searchCondition.setSeparator(" OR "); searchCondition.setPrefix("(");