diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-31 12:49:33 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-03-31 12:49:33 +0200 |
commit | 5148170da0486d7a483cdd4e815a37485cfb907e (patch) | |
tree | 760268a56752a3d46b49ca9a773e2c50baa9739d /ishtar_common/views.py | |
parent | b1b03d624a8c501bc15a21e90e7abde2fd28698f (diff) | |
download | Ishtar-5148170da0486d7a483cdd4e815a37485cfb907e.tar.bz2 Ishtar-5148170da0486d7a483cdd4e815a37485cfb907e.zip |
Filter autocomplete by own if relevant
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index e483c9476..4732313ea 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -445,14 +445,13 @@ def autocomplete_person_permissive(request, person_types=None, def autocomplete_person(request, person_types=None, attached_to=None, is_ishtar_user=None, permissive=False): - if not request.user.has_perm('ishtar_common.view_person', - models.Person) and \ - not request.user.has_perm('ishtar_common.view_own_person', - models.Person) \ - and not request.user.ishtaruser.has_right('person_search', - session=request.session): - return HttpResponse(mimetype='text/plain') - if not request.GET.get('term'): + all_items = request.user.has_perm('ishtar_common.view_person', + models.Person) + own_items = False + if not all_items: + own_items = request.user.has_perm('ishtar_common.view_own_person', + models.Person) + if not all_items and not own_items or not request.GET.get('term'): return HttpResponse(mimetype='text/plain') q = request.GET.get('term') limit = request.GET.get('limit', 20) @@ -479,6 +478,8 @@ def autocomplete_person(request, person_types=None, attached_to=None, pass if is_ishtar_user: query = query & Q(ishtaruser__isnull=False) + if own_items: + query &= models.Person.get_query_owns(request.user) persons = models.Person.objects.filter(query)[:limit] data = json.dumps([{'id': person.pk, 'value': unicode(person)} for person in persons if person]) |