/** * Filters the given list of resources, removes all resources where the current user * does not have READ permissions, plus the filter is applied.<p> * * @param dbc the current database context * @param resourceList a list of CmsResources * @param filter the resource filter to use * * @return the filtered list of resources * * @throws CmsException in case errors testing the permissions */ private List filterPermissions(CmsDbContext dbc, List resourceList, CmsResourceFilter filter) throws CmsException { if (filter.requireTimerange()) { // never check time range here - this must be done later in #updateContextDates(...) filter = filter.addExcludeTimerange(); } ArrayList result = new ArrayList(resourceList.size()); for (int i = 0; i < resourceList.size(); i++) { // check the permission of all resources CmsResource currentResource = (CmsResource)resourceList.get(i); if (m_securityManager.hasPermissions(dbc, currentResource, CmsPermissionSet.ACCESS_READ, true, filter).isAllowed()) { // only return resources where permission was granted result.add(currentResource); } } // return the result return result; }
filter = filter.addExcludeTimerange();
if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { filter = filter.addExcludeTimerange();
filter = filter.addExcludeTimerange();
if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { filter = filter.addExcludeTimerange();
/** * Returns all resources in the folder pointed to by the parameter.<p> * * @param cms the current OpenCms user context * @param param the folder name to use * @param tree if true, look in folder and all child folders, if false, look only in given folder * @param numResults the number of results * * @return all resources in the folder matching the given criteria * * @throws CmsException if something goes wrong * @throws CmsIllegalArgumentException if the given param argument is not a link to a single file * */ protected List<CmsResource> getAllInFolder(CmsObject cms, String param, boolean tree, int numResults) throws CmsException, CmsIllegalArgumentException { CmsCollectorData data = new CmsCollectorData(param); String foldername = CmsResource.getFolderPath(data.getFileName()); CmsResourceFilter filter = CmsResourceFilter.DEFAULT_FILES.addRequireType(data.getType()).addExcludeFlags( CmsResource.FLAG_TEMPFILE); if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { // include all not yet released and expired resources in an offline project filter = filter.addExcludeTimerange(); } List<CmsResource> result = cms.readResources(foldername, filter, tree); Collections.sort(result, I_CmsResource.COMPARE_ROOT_PATH); Collections.reverse(result); return shrinkToFit(result, data.getCount(), numResults); }
if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { filter = filter.addExcludeTimerange();
/** * Returns a List of all resources in the folder pointed to by the parameter * sorted by the release date, descending.<p> * * @param cms the current CmsObject * @param param the folder name to use * @param tree if true, look in folder and all child folders, if false, look only in given folder * @param numResults the number of results * * @return a List of all resources in the folder pointed to by the parameter * sorted by the release date, descending * * @throws CmsException if something goes wrong */ protected List<CmsResource> allInFolderDateReleasedDesc(CmsObject cms, String param, boolean tree, int numResults) throws CmsException { CmsCollectorData data = new CmsCollectorData(param); String foldername = CmsResource.getFolderPath(data.getFileName()); CmsResourceFilter filter = CmsResourceFilter.DEFAULT_FILES.addRequireType(data.getType()).addExcludeFlags( CmsResource.FLAG_TEMPFILE); if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { // include all not yet released and expired resources in an offline project filter = filter.addExcludeTimerange(); } List<CmsResource> result = cms.readResources(foldername, filter, tree); Collections.sort(result, I_CmsResource.COMPARE_DATE_RELEASED); return shrinkToFit(result, data.getCount(), numResults); }
/** * Returns a list of all resource in a specified folder sorted by priority descending, then Title ascending.<p> * * @param cms the current OpenCms user context * @param param the folder name to use * @param tree if true, look in folder and all child folders, if false, look only in given folder * @param numResults the number of results * * @return all resources in the folder matching the given criteria * * @throws CmsException if something goes wrong */ protected List<CmsResource> allInFolderPriorityTitle(CmsObject cms, String param, boolean tree, int numResults) throws CmsException { CmsCollectorData data = new CmsCollectorData(param); String foldername = CmsResource.getFolderPath(data.getFileName()); CmsResourceFilter filter = CmsResourceFilter.DEFAULT.addRequireType(data.getType()).addExcludeFlags( CmsResource.FLAG_TEMPFILE); if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { // include all not yet released and expired resources in an offline project filter = filter.addExcludeTimerange(); } List<CmsResource> result = cms.readResources(foldername, filter, tree); // create priority comparator to use to sort the resources CmsPriorityTitleResourceComparator comparator = new CmsPriorityTitleResourceComparator(cms); Collections.sort(result, comparator); return shrinkToFit(result, data.getCount(), numResults); }
if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { filter = filter.addExcludeTimerange();
if (data.isExcludeTimerange() && !cms.getRequestContext().getCurrentProject().isOnlineProject()) { filter = filter.addExcludeTimerange();