Class QueryRuntimeFilterFactory.ShareableFilter

java.lang.Object
net.sf.basedb.core.QueryRuntimeFilterFactory.ShareableFilter
All Implemented Interfaces:
QueryRuntimeFilter
Enclosing class:
QueryRuntimeFilterFactory

private static class QueryRuntimeFilterFactory.ShareableFilter
extends Object
implements QueryRuntimeFilter
An optional default filter for Shareable items. The filter checks the query for the Include.MINE, Include.OTHERS, Include.SHARED and Include.IN_PROJECT and enables one of the filters:
  • ownedBy
  • notOwnedBy
  • sharedTo
  • inProject
  • ownedByOrSharedTo
  • ownedByOrInProject
  • sharedToOrInProject
  • ownedByOrSharedToOrInProject
  • denyAll
The filter makes sure that the query doesn't return an item that the logged in user doesn't have the permission EntityQuery.getItemPermission() for.
  • Constructor Details

    • ShareableFilter

      private ShareableFilter()
  • Method Details

    • enableFilters

      public void enableFilters​(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc)
      Description copied from interface: QueryRuntimeFilter
      Enable the filters based on the options specified by the query and the logged in users permissions. Implementors should use the manager to enable the filters, not the HibernateUtil.enableFilter() method. The manager keeps track of already enabled filters and also takes care of disabling all filters after the query has been executed.
      Specified by:
      enableFilters in interface QueryRuntimeFilter
      Parameters:
      manager - A manager that is used to actually enabled the filter
      query - The query that is going to be executed, it is not possible to modify the query, the actual HQL may already have been generated
      dc - The DbControl used for database access and permission checking