summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
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
commit5148170da0486d7a483cdd4e815a37485cfb907e (patch)
tree760268a56752a3d46b49ca9a773e2c50baa9739d /ishtar_common/views.py
parentb1b03d624a8c501bc15a21e90e7abde2fd28698f (diff)
downloadIshtar-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.py17
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])