diff options
author | Étienne Loks <etienne.loks@proxience.com> | 2016-01-10 15:35:51 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@proxience.com> | 2016-01-10 15:35:51 +0100 |
commit | 9de20f503852855b5dda8723693c5d156232d16d (patch) | |
tree | 8d8e7c09faf179b2fed07878d1cf450a245a78d0 /ishtar_common/views.py | |
parent | 5e0b683ccc3851a4092e4d459a43fb557299d47e (diff) | |
parent | 23622f70dc4b6b544dcd99994e46ea20ff309777 (diff) | |
download | Ishtar-9de20f503852855b5dda8723693c5d156232d16d.tar.bz2 Ishtar-9de20f503852855b5dda8723693c5d156232d16d.zip |
Merge branch 'master' into master-land-planner-2999
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r-- | ishtar_common/views.py | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index a18673b44..1320517ff 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -325,18 +325,24 @@ def get_item(model, func_name, default_name, extra_request_keys=[], # check rights own = True # more restrictive by default allowed = False - for perm, lbl in model._meta.permissions: - # if not specific any perm is relevant (read right) - if specific_perms and perm not in specific_perms: - continue - if request.user.has_perm(model._meta.app_label + '.' + perm) \ - or (request.user.is_authenticated() - and request.user.ishtaruser.has_right( - perm, session=request.session)): - allowed = True - if "_own_" not in perm: - own = False - break # max right reach + if request.user.is_authenticated() and \ + request.user.ishtaruser.has_right('administrator', + session=request.session): + allowed = True + own = False + else: + for perm, lbl in model._meta.permissions: + # if not specific any perm is relevant (read right) + if specific_perms and perm not in specific_perms: + continue + if request.user.has_perm(model._meta.app_label + '.' + perm) \ + or (request.user.is_authenticated() + and request.user.ishtaruser.has_right( + perm, session=request.session)): + allowed = True + if "_own_" not in perm: + own = False + break # max right reach if force_own: own = True EMPTY = '' |