diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-10-11 20:40:01 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-10-11 20:40:01 +0200 |
commit | 1970ab3e774d912a73ffd343e506156ba34772b2 (patch) | |
tree | 5b6673e61cd00871718cc6e1d4859d75b7433484 /ishtar/ishtar_base/views.py | |
parent | 968d59a2de5918353df998fcd90283da76a18f95 (diff) | |
download | Ishtar-1970ab3e774d912a73ffd343e506156ba34772b2.tar.bz2 Ishtar-1970ab3e774d912a73ffd343e506156ba34772b2.zip |
More precise right managements (closes #644)
- wizard filtered with right managements
- better admin for rights related to person types
Diffstat (limited to 'ishtar/ishtar_base/views.py')
-rw-r--r-- | ishtar/ishtar_base/views.py | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py index c00dd8bc9..94a37d46e 100644 --- a/ishtar/ishtar_base/views.py +++ b/ishtar/ishtar_base/views.py @@ -74,8 +74,11 @@ def check_permission(request, action_slug, obj_id=None): return menu.items[action_slug].can_be_available(request.user) def autocomplete_person(request, person_type=None): - if not request.user.has_perm('ishtar_base.view_person', models.Person) and \ - not request.user.has_perm('ishtar_base.view_own_person', models.Person) : + person_types = request.user.ishtaruser.person.person_type + if (not request.user.has_perm('ishtar_base.view_person', models.Person) and + not request.user.has_perm('ishtar_base.view_own_person', models.Person) + and not person_types.rights.filter(wizard__url_name='person_search' + ).count()): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') @@ -120,8 +123,11 @@ def autocomplete_town(request): return HttpResponse(data, mimetype='text/plain') def autocomplete_file(request): - if not request.user.has_perm('ishtar_base.view_file', models.File) and \ - not request.user.has_perm('ishtar_base.view_own_file', models.File) : + person_types = request.user.ishtaruser.person.person_type + if (not request.user.has_perm('ishtar_base.view_file', models.File) and \ + not request.user.has_perm('ishtar_base.view_own_file', models.File) + and not person_types.rights.filter(wizard__url_name='file_search' + ).count()): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') @@ -434,9 +440,12 @@ show_file = show_item(models.File, 'file') revert_file = revert_item(models.File) def autocomplete_operation(request, non_closed=True): - if not request.user.has_perm('ishtar_base.view_operation', models.Operation)\ + person_types = request.user.ishtaruser.person.person_type + if (not request.user.has_perm('ishtar_base.view_operation', models.Operation)\ and not request.user.has_perm('ishtar_base.view_own_operation', - models.Operation): + models.Operation) + and not person_types.rights.filter(wizard__url_name='operation_search' + ).count()): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') @@ -492,10 +501,13 @@ get_administrativeactop = get_item(models.AdministrativeAct, 'act_type__intented_to':'act_type__intented_to'}) def autocomplete_organization(request, orga_type=None): - if not request.user.has_perm('ishtar_base.view_organization', + person_types = request.user.ishtaruser.person.person_type + if (not request.user.has_perm('ishtar_base.view_organization', models.Organization) and \ not request.user.has_perm('ishtar_base.view_own_organization', - models.Organization): + models.Organization) + and not person_types.rights.filter(wizard__url_name='person_search' + ).count()): return HttpResponse(mimetype='text/plain') if not request.GET.get('term'): return HttpResponse(mimetype='text/plain') |