Add and enable the new PERMISSION_DOCUMENT_NEW_VERSION permission
This commit is contained in:
@@ -7,17 +7,21 @@ from common.utils import encapsulate
|
||||
from project_setup.api import register_setup
|
||||
from documents.models import Document
|
||||
from documents.literals import PERMISSION_DOCUMENT_CREATE
|
||||
from acls.models import class_permissions
|
||||
|
||||
from sources.staging import StagingFile
|
||||
from sources.models import WebForm, StagingFolder, SourceTransformation, \
|
||||
WatchFolder
|
||||
from sources.widgets import staging_file_thumbnail
|
||||
|
||||
sources_namespace = PermissionNamespace('sources_setup', _(u'Sources setup'))
|
||||
PERMISSION_SOURCES_SETUP_VIEW = Permission.objects.register(sources_namespace, 'sources_setup_view', _(u'View existing document sources'))
|
||||
PERMISSION_SOURCES_SETUP_EDIT = Permission.objects.register(sources_namespace, 'sources_setup_edit', _(u'Edit document sources'))
|
||||
PERMISSION_SOURCES_SETUP_DELETE = Permission.objects.register(sources_namespace, 'sources_setup_delete', _(u'Delete document sources'))
|
||||
PERMISSION_SOURCES_SETUP_CREATE = Permission.objects.register(sources_namespace, 'sources_setup_create', _(u'Create new document sources'))
|
||||
sources_setup_namespace = PermissionNamespace('sources_setup', _(u'Sources setup'))
|
||||
PERMISSION_SOURCES_SETUP_VIEW = Permission.objects.register(sources_setup_namespace, 'sources_setup_view', _(u'View existing document sources'))
|
||||
PERMISSION_SOURCES_SETUP_EDIT = Permission.objects.register(sources_setup_namespace, 'sources_setup_edit', _(u'Edit document sources'))
|
||||
PERMISSION_SOURCES_SETUP_DELETE = Permission.objects.register(sources_setup_namespace, 'sources_setup_delete', _(u'Delete document sources'))
|
||||
PERMISSION_SOURCES_SETUP_CREATE = Permission.objects.register(sources_setup_namespace, 'sources_setup_create', _(u'Create new document sources'))
|
||||
|
||||
sources_namespace = PermissionNamespace('sources', _(u'Sources'))
|
||||
PERMISSION_DOCUMENT_NEW_VERSION = Permission.objects.register(sources_namespace, 'sources_document_new_version', _(u'Create new document version'))
|
||||
|
||||
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}
|
||||
@@ -38,7 +42,7 @@ setup_source_transformation_delete = {'text': _(u'delete'), 'view': 'setup_sourc
|
||||
|
||||
source_list = {'text': _(u'Document sources'), 'view': 'setup_web_form_list', 'famfam': 'page_add', 'children_url_regex': [r'sources/setup']}
|
||||
|
||||
upload_version = {'text': _(u'upload new version'), 'view': 'upload_version', 'args': 'object.pk', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_CREATE]}
|
||||
upload_version = {'text': _(u'upload new version'), 'view': 'upload_version', 'args': 'object.pk', 'famfam': 'page_add', 'permissions': [PERMISSION_DOCUMENT_NEW_VERSION]}
|
||||
|
||||
register_links(StagingFile, [staging_file_delete])
|
||||
|
||||
@@ -75,3 +79,7 @@ register_model_list_columns(StagingFile, [
|
||||
|
||||
|
||||
register_setup(setup_sources)
|
||||
|
||||
class_permissions(Document, [
|
||||
PERMISSION_DOCUMENT_NEW_VERSION
|
||||
])
|
||||
|
||||
@@ -14,6 +14,7 @@ from metadata.api import decode_metadata_from_url, metadata_repr_as_list
|
||||
from permissions.models import Permission
|
||||
from common.utils import encapsulate
|
||||
import sendfile
|
||||
from acls.models import AccessEntry, PermissionDenied
|
||||
|
||||
from sources.models import WebForm, StagingFolder, SourceTransformation, \
|
||||
WatchFolder
|
||||
@@ -26,9 +27,9 @@ from sources.forms import StagingDocumentForm, WebFormForm, \
|
||||
WatchFolderSetupForm
|
||||
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
|
||||
from sources import (PERMISSION_SOURCES_SETUP_VIEW,
|
||||
PERMISSION_SOURCES_SETUP_EDIT, PERMISSION_SOURCES_SETUP_DELETE,
|
||||
PERMISSION_SOURCES_SETUP_CREATE, PERMISSION_DOCUMENT_NEW_VERSION)
|
||||
|
||||
|
||||
def return_function(obj):
|
||||
@@ -71,14 +72,18 @@ def get_active_tab_links(document=None):
|
||||
}
|
||||
|
||||
def upload_interactive(request, source_type=None, source_id=None, document_pk=None):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CREATE])
|
||||
|
||||
subtemplates_list = []
|
||||
|
||||
if document_pk:
|
||||
document = get_object_or_404(Document, pk=document_pk)
|
||||
try:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_NEW_VERSION])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_NEW_VERSION, request.user, document)
|
||||
|
||||
results = get_active_tab_links(document)
|
||||
else:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_CREATE])
|
||||
document = None
|
||||
results = get_active_tab_links()
|
||||
|
||||
@@ -386,6 +391,7 @@ def staging_file_delete(request, source_type, source_id, staging_file_id):
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
# Setup views
|
||||
def setup_source_list(request, source_type):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_SOURCES_SETUP_VIEW])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user