Interface QueryRuntimeFilter

All Known Implementing Classes:
Annotation.QueryRuntimeFilterImpl, AnnotationSet.QueryRuntimeFilterImpl, FileSet.QueryRuntimeFilterImpl, FileSetMember.QueryRuntimeFilterImpl, Group.QueryRuntimeFilterImpl, Message.QueryRuntimeFilterImpl, News.QueryRuntimeFilterImpl, Project.QueryRuntimeFilterImpl, QueryRuntimeFilterFactory.AnnotatableFilter, QueryRuntimeFilterFactory.BasicFilter, QueryRuntimeFilterFactory.ChainedFilter, QueryRuntimeFilterFactory.ChildFilter, QueryRuntimeFilterFactory.DenyAllFilter, QueryRuntimeFilterFactory.OwnableFilter, QueryRuntimeFilterFactory.RemovableFilter, QueryRuntimeFilterFactory.ShareableFilter, Quota.QueryRuntimeFilterImpl, Role.QueryRuntimeFilterImpl, Session.QueryRuntimeFilterImpl, User.QueryRuntimeFilterImpl, UserDevice.QueryRuntimeFilterImpl

interface QueryRuntimeFilter
Represents a filter that is applied to a query just before it is executed in order to limit the result. Runtime filters are used for two purposes:
  • Limit the returned items based on the logged in users permissions. A query must never return an item which the logged in user doesn't have read permission to. If the query does that a PermissionDeniedException is thrown while trying to access that item.
  • Limit the returned items based on the options a client application specifies with the EntityQuery.include(Include[]) and EntityQuery.exclude(Include[]) methods. The default is to return only items which are owned by the logged in user and not flagged as removed.
Version:
2.0
Author:
Nicklas
See Also:
Developer documentation: The Query API
Last modified
$Date: 2015-04-21 09:59:42 +0200 (ti, 21 apr 2015) $
  • Method Summary

    Modifier and Type Method Description
    void enableFilters​(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc)
    Enable the filters based on the options specified by the query and the logged in users permissions.
  • Method Details

    • enableFilters

      void enableFilters​(QueryRuntimeFilterManager manager, EntityQuery query, DbControl dc)
      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.
      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