summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-10-09 17:43:32 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-10-09 17:43:32 +0200
commit8c16f5ffb02f4d5f8a8e071204ff02fd3dc2881a (patch)
tree79be6baa36d1e1178d2035b0236c332330107a73 /ishtar_common
parent3d3e6c76dea0bc6eddd2e6380d5be9f7c8a2aba2 (diff)
downloadIshtar-8c16f5ffb02f4d5f8a8e071204ff02fd3dc2881a.tar.bz2
Ishtar-8c16f5ffb02f4d5f8a8e071204ff02fd3dc2881a.zip
Fix get_query_own - provide a ishtaruser as an argument
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py25
-rw-r--r--ishtar_common/views.py4
-rw-r--r--ishtar_common/views_item.py4
3 files changed, 21 insertions, 12 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index de494e863..a99921740 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -228,7 +228,7 @@ class OwnPerms(object):
Manage special permissions for object's owner
"""
@classmethod
- def get_query_owns(cls, user):
+ def get_query_owns(cls, ishtaruser):
"""
Query object to get own items
"""
@@ -238,7 +238,9 @@ class OwnPerms(object):
"""
Check if the current object is owned by the user
"""
- query = self.get_query_owns(user)
+ if not hasattr(user, 'ishtaruser'):
+ return False
+ query = self.get_query_owns(user.ishtaruser)
if not query:
return False
query &= Q(pk=self.pk)
@@ -249,7 +251,9 @@ class OwnPerms(object):
"""
Check if the user own some items
"""
- query = cls.get_query_owns(user)
+ if not hasattr(user, 'ishtaruser'):
+ return False
+ query = cls.get_query_owns(user.ishtaruser)
if not query:
return False
return cls.objects.filter(query).count()
@@ -301,7 +305,9 @@ class OwnPerms(object):
items = []
if hasattr(cls, 'BASKET_MODEL'):
items = list(cls.BASKET_MODEL.objects.filter(user=user).all())
- query = cls.get_query_owns(user)
+ if not hasattr(user, 'ishtaruser'):
+ return False
+ query = cls.get_query_owns(user.ishtaruser)
if not query and not replace_query:
returned = cls.objects.filter(pk__isnull=True)
if values:
@@ -2974,16 +2980,15 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
fle.save() # force update of raw_general_contractor
@classmethod
- def get_query_owns(cls, user):
+ def get_query_owns(cls, ishtaruser):
return \
Q(operation_scientist_responsability__collaborators__ishtaruser
- =user.ishtaruser) | \
+ =ishtaruser) | \
Q(operation_scientist_responsability__scientist__ishtaruser
- =user.ishtaruser) | \
+ =ishtaruser) | \
Q(operation_collaborator__collaborators__ishtaruser
- =user.ishtaruser) | \
- Q(operation_collaborator__scientist__ishtaruser
- =user.ishtaruser)
+ =ishtaruser) | \
+ Q(operation_collaborator__scientist__ishtaruser=ishtaruser)
post_save.connect(cached_label_changed, sender=Person)
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index b59c4c8e4..00e5df7e1 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -502,7 +502,9 @@ def autocomplete_person(request, person_types=None, attached_to=None,
if is_ishtar_user:
query = query & Q(ishtaruser__isnull=False)
if own_items:
- query &= models.Person.get_query_owns(request.user)
+ if not hasattr(request.user, 'ishtaruser'):
+ return HttpResponse(json.dumps([]), content_type='text/plain')
+ query &= models.Person.get_query_owns(request.user.ishtaruser)
persons = models.Person.objects.filter(query)[:limit]
data = json.dumps([{'id': person.pk, 'value': unicode(person)}
for person in persons if person])
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 3fa49bd07..cfb7a42c3 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -128,7 +128,9 @@ def show_item(model, name, extra_dct=None):
return HttpResponse('', content_type="application/xhtml")
q = model.objects
if own:
- query_own = model.get_query_owns(request.user)
+ if not hasattr(request.user, 'ishtaruser'):
+ return HttpResponse('NOK')
+ query_own = model.get_query_owns(request.user.ishtaruser)
if query_own:
q = q.filter(query_own)
try: