diff options
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]) |