diff --git a/mayan/apps/document_acls/__init__.py b/mayan/apps/document_acls/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/mayan/apps/document_acls/apps.py b/mayan/apps/document_acls/apps.py deleted file mode 100644 index 5c250aa5ca..0000000000 --- a/mayan/apps/document_acls/apps.py +++ /dev/null @@ -1,24 +0,0 @@ -from __future__ import unicode_literals - -from django import apps -from django.utils.translation import ugettext_lazy as _ - -from acls.api import class_permissions -from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL -from common import menu_facet -from documents.models import Document - -from .links import link_acl_list - - -class DocumentACLsApp(apps.AppConfig): - name = 'document_acls' - verbose_name = _('Document ACLs') - - def ready(self): - class_permissions(Document, [ - ACLS_VIEW_ACL, - ACLS_EDIT_ACL - ]) - - menu_facet.bind_links(links=[link_acl_list], sources=[Document]) diff --git a/mayan/apps/document_acls/links.py b/mayan/apps/document_acls/links.py deleted file mode 100644 index 4630c579f4..0000000000 --- a/mayan/apps/document_acls/links.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import unicode_literals - -from django.utils.translation import ugettext_lazy as _ - -from acls.permissions import ACLS_VIEW_ACL -from navigation import Link - -link_acl_list = Link(permissions=[ACLS_VIEW_ACL], text=_('ACLs'), view='document_acls:document_acl_list', args='object.pk') diff --git a/mayan/apps/document_acls/urls.py b/mayan/apps/document_acls/urls.py deleted file mode 100644 index a3ac0c4127..0000000000 --- a/mayan/apps/document_acls/urls.py +++ /dev/null @@ -1,7 +0,0 @@ -from __future__ import unicode_literals - -from django.conf.urls import patterns, url - -urlpatterns = patterns('document_acls.views', - url(r'^list_for/document/(?P\d+)/$', 'document_acl_list', (), 'document_acl_list'), -) diff --git a/mayan/apps/document_acls/views.py b/mayan/apps/document_acls/views.py deleted file mode 100644 index c3bd4484a1..0000000000 --- a/mayan/apps/document_acls/views.py +++ /dev/null @@ -1,17 +0,0 @@ -from __future__ import unicode_literals - -from django.shortcuts import get_object_or_404 - -from acls.views import acl_list_for -from documents.models import Document - - -def document_acl_list(request, document_id): - document = get_object_or_404(Document, pk=document_id) - return acl_list_for( - request, - document, - extra_context={ - 'object': document, - } - ) diff --git a/mayan/apps/documents/apps.py b/mayan/apps/documents/apps.py index 077cab4a49..6c28a96428 100644 --- a/mayan/apps/documents/apps.py +++ b/mayan/apps/documents/apps.py @@ -8,6 +8,7 @@ from django.utils.translation import ugettext_lazy as _ from actstream import registry from acls.api import class_permissions +from acls.permissions import ACLS_VIEW_ACL, ACLS_EDIT_ACL from common import ( MissingItem, menu_facet, menu_front_page, menu_object, menu_secondary, menu_setup, menu_sidebar, menu_multi_item @@ -23,12 +24,12 @@ from statistics.classes import StatisticNamespace from documents import settings as document_settings from .links import ( - link_clear_image_cache, link_document_clear_transformations, - link_document_content, link_document_delete, - link_document_document_type_edit, link_document_events_view, - link_document_multiple_document_type_edit, link_document_download, - link_document_edit, link_document_list, link_document_list_recent, - link_document_multiple_delete, + link_clear_image_cache, link_document_acl_list, + link_document_clear_transformations, link_document_content, + link_document_delete, link_document_document_type_edit, + link_document_events_view, link_document_multiple_document_type_edit, + link_document_download, link_document_edit, link_document_list, + link_document_list_recent, link_document_multiple_delete, link_document_multiple_clear_transformations, link_document_multiple_download, link_document_multiple_update_page_count, link_document_page_edit, @@ -82,11 +83,15 @@ class DocumentsApp(apps.AppConfig): ModelAttribute(Document, label=_('Label'), name='label', type_name='field') class_permissions(Document, [ - PERMISSION_DOCUMENT_DELETE, PERMISSION_DOCUMENT_DOWNLOAD, - PERMISSION_DOCUMENT_EDIT, PERMISSION_DOCUMENT_NEW_VERSION, - PERMISSION_DOCUMENT_PROPERTIES_EDIT, PERMISSION_DOCUMENT_TRANSFORM, - PERMISSION_DOCUMENT_VERSION_REVERT, PERMISSION_DOCUMENT_VIEW, - PERMISSION_EVENTS_VIEW + ]) + + class_permissions(Document, [ + ACLS_VIEW_ACL, ACLS_EDIT_ACL, PERMISSION_DOCUMENT_DELETE, + PERMISSION_DOCUMENT_DOWNLOAD, PERMISSION_DOCUMENT_EDIT, + PERMISSION_DOCUMENT_NEW_VERSION, + PERMISSION_DOCUMENT_PROPERTIES_EDIT, + PERMISSION_DOCUMENT_TRANSFORM, PERMISSION_DOCUMENT_VERSION_REVERT, + PERMISSION_DOCUMENT_VIEW, PERMISSION_EVENTS_VIEW ]) document_search = SearchModel('documents', 'Document', permission=PERMISSION_DOCUMENT_VIEW, serializer_string='documents.serializers.DocumentSerializer') @@ -105,16 +110,17 @@ class DocumentsApp(apps.AppConfig): menu_front_page.bind_links(links=[link_document_list_recent, link_document_list]) menu_setup.bind_links(links=[link_document_type_setup]) - # Document - menu_object.bind_links(links=[link_document_edit, link_document_document_type_edit, link_document_print, link_document_delete, link_document_download, link_document_clear_transformations, link_document_update_page_count], sources=[Document]) - # Document type links menu_object.bind_links(links=[link_document_type_edit, link_document_type_filename_list, link_document_type_delete], sources=[DocumentType]) menu_object.bind_links(links=[link_document_type_filename_edit, link_document_type_filename_delete], sources=[DocumentTypeFilename]) menu_secondary.bind_links(links=[link_document_type_list, link_document_type_create], sources=[DocumentType, 'documents:document_type_create', 'documents:document_type_list']) menu_sidebar.bind_links(links=[link_document_type_filename_create], sources=[DocumentTypeFilename, 'documents:document_type_filename_list', 'documents:document_type_filename_create']) - # Register document facet links + # Document object links + menu_object.bind_links(links=[link_document_edit, link_document_document_type_edit, link_document_print, link_document_delete, link_document_download, link_document_clear_transformations, link_document_update_page_count], sources=[Document]) + + # Document facet links + menu_facet.bind_links(links=[link_document_acl_list], sources=[Document]) menu_facet.bind_links(links=[link_document_preview], sources=[Document], position=0) menu_facet.bind_links(links=[link_document_content], sources=[Document], position=1) menu_facet.bind_links(links=[link_document_properties], sources=[Document], position=2) diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index ee14239197..7905d54502 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -2,6 +2,7 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ +from acls.permissions import ACLS_VIEW_ACL from events.permissions import PERMISSION_EVENTS_VIEW from navigation import Link @@ -37,6 +38,7 @@ def is_min_zoom(context): # Facet +link_document_acl_list = Link(permissions=[ACLS_VIEW_ACL], text=_('ACLs'), view='documents:document_acl_list', args='object.pk') link_document_content = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Content'), view='documents:document_content', args='object.id') link_document_events_view = Link(permissions=[PERMISSION_EVENTS_VIEW], text=_('Events'), view='events:events_for_object', args=['"documents"', '"document"', 'object.id']) link_document_preview = Link(permissions=[PERMISSION_DOCUMENT_VIEW], text=_('Preview'), view='documents:document_preview', args='object.id') diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index e3ffa48016..78c3506554 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -28,6 +28,8 @@ urlpatterns = patterns('documents.views', url(r'^(?P\d+)/reset_page_count/$', 'document_update_page_count', (), 'document_update_page_count'), url(r'^multiple/reset_page_count/$', 'document_multiple_update_page_count', (), 'document_multiple_update_page_count'), + url(r'^(?P\d+)/acls/$', 'document_acl_list', (), 'document_acl_list'), + url(r'^(?P\d+)/display/$', 'get_document_image', {'size': DISPLAY_SIZE}, 'document_display'), url(r'^(?P\d+)/display/print/$', 'get_document_image', {'size': PRINT_SIZE}, 'document_display_print'), diff --git a/mayan/apps/documents/views.py b/mayan/apps/documents/views.py index 0643ed35a8..6465494feb 100644 --- a/mayan/apps/documents/views.py +++ b/mayan/apps/documents/views.py @@ -16,6 +16,7 @@ from django.utils.translation import ugettext_lazy as _, ungettext import sendfile from acls.models import AccessEntry +from acls.views import acl_list_for from common.compressed_files import CompressedFile from common.utils import encapsulate, pretty_size, parse_range, urlquote from common.views import SingleObjectListView @@ -1238,3 +1239,14 @@ def document_page_transformation_delete(request, document_page_transformation_id 'document_page': document_page_transformation.document_page}, 'transformation': document_page_transformation, }, context_instance=RequestContext(request)) + + +def document_acl_list(request, document_id): + document = get_object_or_404(Document, pk=document_id) + return acl_list_for( + request, + document, + extra_context={ + 'object': document, + } + ) diff --git a/mayan/settings/base.py b/mayan/settings/base.py index ecd630c09a..bfafacae0b 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -77,7 +77,6 @@ INSTALLED_APPS = ( 'user_management.apps.UserManagementApp', # Mayan EDMS 'checkouts.apps.CheckoutsApp', - 'document_acls.apps.DocumentACLsApp', 'document_comments.apps.DocumentCommentsApp', 'document_indexing.apps.DocumentIndexingApp', 'document_signatures.apps.DocumentSignaturesApp', diff --git a/mayan/urls.py b/mayan/urls.py index 9eb62c896e..8b4748ec05 100644 --- a/mayan/urls.py +++ b/mayan/urls.py @@ -15,7 +15,6 @@ urlpatterns = patterns('', url(r'^authentication/', include('authentication.urls', namespace='authentication')), url(r'^checkouts/', include('checkouts.urls', namespace='checkouts')), url(r'^comments/', include('document_comments.urls', namespace='comments')), - url(r'^document/acls/', include('document_acls.urls', namespace='document_acls')), url(r'^document/signatures/', include('document_signatures.urls', namespace='signatures')), url(r'^document/states/', include('document_states.urls', namespace='document_states')), url(r'^documents/', include('documents.urls', namespace='documents')),