Merge lp:~wgrant/launchpad/bug-1075767 into lp:launchpad
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Steve Kowalik | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 16320 | ||||
Proposed branch: | lp:~wgrant/launchpad/bug-1075767 | ||||
Merge into: | lp:launchpad | ||||
Diff against target: |
426 lines (+62/-217) 2 files modified
lib/lp/registry/model/person.py (+31/-39) lib/lp/registry/vocabularies.py (+31/-178) |
||||
To merge this branch: | bzr merge lp:~wgrant/launchpad/bug-1075767 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Steve Kowalik (community) | code | Approve | |
Review via email: mp+136572@code.launchpad.net |
Commit message
Optimise PersonSet person visibility checks, and simplify person vocab queries.
Description of the change
This branch fixes and cleans various bits and pieces around person search, particularly with private teams.
I went in to fix bug #1075767 by changing PersonSet's search access checks to use Person.id IN ([... subquery for user's participated teams]), which is hashable and much faster than the existing TeamParticipation join. This was a resounding success. But then I opted to see if the benefits would extend to ValidPersonOrTe
ValidPersonOrTe
In doing this I discovered that PersonSet searches didn't respect the admins-
With the vocabs' hideousness reduced, the branch ended up around -150.