From 082c3e699c5a84d271c68de2c5fbd7b0191d7a83 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 13 Jul 2011 02:43:31 -0400 Subject: [PATCH] Added sources views user permissions restrictions --- apps/sources/__init__.py | 13 +++++++++++++ apps/sources/views.py | 21 ++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/apps/sources/__init__.py b/apps/sources/__init__.py index a65f6aabab..09aed54edb 100644 --- a/apps/sources/__init__.py +++ b/apps/sources/__init__.py @@ -3,10 +3,23 @@ from django.utils.translation import ugettext_lazy as _ from navigation.api import register_links, \ register_model_list_columns, register_multi_item_links, \ register_sidebar_template +from permissions.api import register_permission, set_namespace_title from sources.staging import StagingFile from sources.models import WebForm, StagingFolder, SourceTransformation +PERMISSION_SOURCES_SETUP_VIEW = {'namespace': 'sources_setup', 'name': 'sources_setup_view', 'label': _(u'View exisinting document sources')} +PERMISSION_SOURCES_SETUP_EDIT = {'namespace': 'sources_setup', 'name': 'sources_setup_edit', 'label': _(u'Edit document sources')} +PERMISSION_SOURCES_SETUP_DELETE = {'namespace': 'sources_setup', 'name': 'sources_setup_delete', 'label': _(u'Delete document sources')} +PERMISSION_SOURCES_SETUP_CREATE = {'namespace': 'sources_setup', 'name': 'sources_setup_create', 'label': _(u'Create new document sources')} + +set_namespace_title('sources_setup', _(u'Sources setup')) +register_permission(PERMISSION_SOURCES_SETUP_VIEW) +register_permission(PERMISSION_SOURCES_SETUP_EDIT) +register_permission(PERMISSION_SOURCES_SETUP_DELETE) +register_permission(PERMISSION_SOURCES_SETUP_CREATE) + + staging_file_preview = {'text': _(u'preview'), 'class': 'fancybox-noscaling', 'view': 'staging_file_preview', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'zoom'} staging_file_delete = {'text': _(u'delete'), 'view': 'staging_file_delete', 'args': ['source.source_type', 'source.pk', 'object.id'], 'famfam': 'delete', 'keep_query': True} diff --git a/apps/sources/views.py b/apps/sources/views.py index 5ce2f18eb6..6a48dc1e34 100644 --- a/apps/sources/views.py +++ b/apps/sources/views.py @@ -31,7 +31,10 @@ from sources.staging import create_staging_file_class, StagingFile from sources.forms import StagingDocumentForm, WebFormForm from sources.forms import WebFormSetupForm, StagingFolderSetupForm from sources.forms import SourceTransformationForm, SourceTransformationForm_create - +from sources import PERMISSION_SOURCES_SETUP_VIEW, \ + PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE, \ + PERMISSION_SOURCES_SETUP_CREATE + def return_function(obj): return lambda context: context['source'].source_type == obj.source_type and context['source'].pk == obj.pk @@ -335,7 +338,7 @@ def staging_file_delete(request, source_type, source_id, staging_file_id): def setup_source_list(request, source_type): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_VIEW]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_VIEW]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm @@ -355,7 +358,7 @@ def setup_source_list(request, source_type): def setup_source_edit(request, source_type, source_id): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm @@ -392,7 +395,7 @@ def setup_source_edit(request, source_type, source_id): def setup_source_delete(request, source_type, source_id): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_DELETE]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_DELETE]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm form_icon = u'application_form_delete.png' @@ -434,7 +437,7 @@ def setup_source_delete(request, source_type, source_id): def setup_source_create(request, source_type): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_CREATE]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm @@ -466,7 +469,7 @@ def setup_source_create(request, source_type): def setup_source_transformation_list(request, source_type, source_id): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_VIEW]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm @@ -496,7 +499,7 @@ def setup_source_transformation_list(request, source_type, source_id): def setup_source_transformation_edit(request, transformation_id): - #check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) source_transformation = get_object_or_404(SourceTransformation, pk=transformation_id) redirect_view = reverse('setup_source_transformation_list', args=[source_transformation.content_object.source_type, source_transformation.content_object.pk]) @@ -529,7 +532,7 @@ def setup_source_transformation_edit(request, transformation_id): def setup_source_transformation_delete(request, transformation_id): - #check_permissions(request.user, [PERMISSION_DOCUMENT_TRANSFORM]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) source_transformation = get_object_or_404(SourceTransformation, pk=transformation_id) redirect_view = reverse('setup_source_transformation_list', args=[source_transformation.content_object.source_type, source_transformation.content_object.pk]) @@ -563,7 +566,7 @@ def setup_source_transformation_delete(request, transformation_id): def setup_source_transformation_create(request, source_type, source_id): - #check_permissions(request.user, [PERMISSION_DOCUMENT_TRANSFORM]) + check_permissions(request.user, [PERMISSION_SOURCES_SETUP_EDIT]) if source_type == SOURCE_CHOICE_WEB_FORM: cls = WebForm