Add filtering for accessible review requests.

Review Request #1932 — Created Nov. 16, 2010 and submitted

Information

Review Board
master

Reviewers

Add filtering for accessible review requests.

When querying review requests, only those that are accessible will now be
returned. This uses the same criteria as that used in
ReviewRequest.is_accessible_by(). The accessibility of the Repository and
the Review Groups will be checked during the query.

In order to embed the queries needed, RepositoryManager.accessible_q and
GroupManager.accessible_q functions have been added. These return a Q() object
that represents the accessibility query checks. They can take a prefix for
the variables so that they can be used with a relation in another query.
The existing accessible() functions now just wrap these queries.

 
GU
  1. 
      
  2. 
      
GU
  1. Test
  2. 
      
david
  1. 
      
  2. reviewboard/reviews/managers.py (Diff revision 1)
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    So, my change included stuff for this. I'm not really sure what the benefit of accessible_q is here? It just seems more complicated.
    1. We discussed this on IRC, but for the record, this is available so that this queryset can be embedded in other querysets that need to enforce the accessibility restrictions on relations. So, for example, the ReviewRequest queries should only return review requests  whose repositories and groups are accessible by the user. Rather than duplicating all that logic (which could potentially become stale), we thunk out to this.
      
      It's more or less doing to Q()'s what we do to QuerySets. I'd love it if we could instead do something like Q(repository__accessible=True) and have it somehow let us handle what that accessible= logic does, but this is the closest we can do.
  3. reviewboard/scmtools/managers.py (Diff revision 1)
     
     
    Same comment here as with the ReviewGroupManager.
  4. 
      
chipx86
Review request changed
david
  1. 
      
  2.