diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-28 16:28:47 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-28 16:28:47 +0200 |
commit | ec90a6622d5216634f8d531db50ebd3cf1f1a797 (patch) | |
tree | 796b48a3aa5095bb558909063867a278e91ff3e3 /ishtar_common | |
parent | 4e3fccf862578d2ec8105ad1b3275b2fe8b7f0d2 (diff) | |
download | Ishtar-ec90a6622d5216634f8d531db50ebd3cf1f1a797.tar.bz2 Ishtar-ec90a6622d5216634f8d531db50ebd3cf1f1a797.zip |
Catch non authification errors
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/models.py | 8 | ||||
-rw-r--r-- | ishtar_common/utils.py | 10 |
2 files changed, 13 insertions, 5 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py index aca5f9a34..8096bf6ba 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -290,7 +290,13 @@ class OwnPerms(object): returned = [] return returned if isinstance(user, User): - user = IshtarUser.objects.get(user_ptr=user) + try: + user = IshtarUser.objects.get(user_ptr=user) + except IshtarUser.DoesNotExist: + returned = cls.objects.filter(pk__isnull=True) + if values: + returned = [] + return returned items = [] if hasattr(cls, 'BASKET_MODEL'): items = list(cls.BASKET_MODEL.objects.filter(user=user).all()) diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 94125ddb8..7d5c2ce3a 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -126,16 +126,18 @@ def check_model_access_control(request, model, available_perms=None): if not available_perms: available_perms = ['view_' + model.__name__.lower(), 'view_own_' + model.__name__.lower()] - if request.user.ishtaruser.has_right('administrator', - session=request.session): + try: + ishtaruser = request.user.ishtaruser + except request.user._meta.model.ishtaruser.RelatedObjectDoesNotExist: + return False, True + if ishtaruser.has_right('administrator', session=request.session): allowed = True own = False return allowed, own for perm, lbl in model._meta.permissions: if perm not in available_perms: continue - if request.user.ishtaruser.person.has_right( - perm, session=request.session): + if ishtaruser.person.has_right(perm, session=request.session): allowed = True if "_own_" not in perm: own = False |