Allow registering permission from the permission namespace. Replace all permission variables to be lowercase (style guide reserver uppercase variables for constants and literals).

This commit is contained in:
Roberto Rosario
2015-06-28 00:19:49 -04:00
parent 956ca08cbd
commit d26402974a
82 changed files with 898 additions and 895 deletions

View File

@@ -7,16 +7,16 @@ from rest_framework import generics
from acls.models import AccessEntry
from documents.models import Document
from documents.permissions import PERMISSION_DOCUMENT_VIEW
from documents.permissions import permission_document_view
from permissions.models import Permission
from rest_api.filters import MayanObjectPermissionsFilter
from rest_api.permissions import MayanPermission
from .models import Index, IndexInstanceNode, IndexTemplateNode
from .permissions import (PERMISSION_DOCUMENT_INDEXING_CREATE,
PERMISSION_DOCUMENT_INDEXING_DELETE,
PERMISSION_DOCUMENT_INDEXING_EDIT,
PERMISSION_DOCUMENT_INDEXING_VIEW)
from .permissions import (permission_document_indexing_create,
permission_document_indexing_delete,
permission_document_indexing_edit,
permission_document_indexing_view)
from .serializers import (IndexInstanceNodeSerializer, IndexSerializer,
IndexTemplateNodeSerializer)
@@ -26,8 +26,8 @@ class APIIndexListView(generics.ListCreateAPIView):
queryset = Index.objects.all()
filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_INDEXING_VIEW]}
mayan_view_permissions = {'POST': [PERMISSION_DOCUMENT_INDEXING_CREATE]}
mayan_object_permissions = {'GET': [permission_document_indexing_view]}
mayan_view_permissions = {'POST': [permission_document_indexing_create]}
def get(self, *args, **kwargs):
"""Returns a list of all the defined indexes."""
@@ -44,10 +44,10 @@ class APIIndexView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,)
mayan_object_permissions = {
'GET': [PERMISSION_DOCUMENT_INDEXING_VIEW],
'PUT': [PERMISSION_DOCUMENT_INDEXING_EDIT],
'PATCH': [PERMISSION_DOCUMENT_INDEXING_EDIT],
'DELETE': [PERMISSION_DOCUMENT_INDEXING_DELETE]
'GET': [permission_document_indexing_view],
'PUT': [permission_document_indexing_edit],
'PATCH': [permission_document_indexing_edit],
'DELETE': [permission_document_indexing_delete]
}
def delete(self, *args, **kwargs):
@@ -73,7 +73,7 @@ class APIIndexNodeInstanceDocumentListView(generics.ListAPIView):
"""
filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_VIEW]}
mayan_object_permissions = {'GET': [permission_document_view]}
def get_serializer_class(self):
from documents.serializers import DocumentSerializer
@@ -82,9 +82,9 @@ class APIIndexNodeInstanceDocumentListView(generics.ListAPIView):
def get_queryset(self):
index_node_instance = get_object_or_404(IndexInstanceNode, pk=self.kwargs['pk'])
try:
Permission.objects.check_permissions(self.request.user, [PERMISSION_DOCUMENT_INDEXING_VIEW])
Permission.objects.check_permissions(self.request.user, [permission_document_indexing_view])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_VIEW, self.request.user, index_node_instance.index)
AccessEntry.objects.check_access(permission_document_indexing_view, self.request.user, index_node_instance.index)
return index_node_instance.documents.all()
@@ -93,7 +93,7 @@ class APIIndexTemplateListView(generics.ListAPIView):
serializer_class = IndexTemplateNodeSerializer
filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_INDEXING_VIEW]}
mayan_object_permissions = {'GET': [permission_document_indexing_view]}
def get(self, *args, **kwargs):
"""Returns a list of all the template nodes for the selected index."""
@@ -106,10 +106,10 @@ class APIIndexTemplateView(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (MayanPermission,)
mayan_object_permissions = {
'GET': [PERMISSION_DOCUMENT_INDEXING_VIEW],
'PUT': [PERMISSION_DOCUMENT_INDEXING_EDIT],
'PATCH': [PERMISSION_DOCUMENT_INDEXING_EDIT],
'DELETE': [PERMISSION_DOCUMENT_INDEXING_EDIT]
'GET': [permission_document_indexing_view],
'PUT': [permission_document_indexing_edit],
'PATCH': [permission_document_indexing_edit],
'DELETE': [permission_document_indexing_edit]
}
def delete(self, *args, **kwargs):
@@ -137,13 +137,13 @@ class APIDocumentIndexListView(generics.ListAPIView):
serializer_class = IndexInstanceNodeSerializer
filter_backends = (MayanObjectPermissionsFilter,)
mayan_object_permissions = {'GET': [PERMISSION_DOCUMENT_INDEXING_VIEW]}
mayan_object_permissions = {'GET': [permission_document_indexing_view]}
def get_queryset(self):
document = get_object_or_404(Document, pk=self.kwargs['pk'])
try:
Permission.objects.check_permissions(self.request.user, [PERMISSION_DOCUMENT_VIEW])
Permission.objects.check_permissions(self.request.user, [permission_document_view])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_VIEW, self.request.user, document)
AccessEntry.objects.check_access(permission_document_view, self.request.user, document)
return document.node_instances.all()

View File

@@ -2,14 +2,14 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from documents.permissions import PERMISSION_DOCUMENT_VIEW
from documents.permissions import permission_document_view
from navigation import Link
from .permissions import (
PERMISSION_DOCUMENT_INDEXING_CREATE, PERMISSION_DOCUMENT_INDEXING_EDIT,
PERMISSION_DOCUMENT_INDEXING_DELETE,
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
PERMISSION_DOCUMENT_INDEXING_SETUP, PERMISSION_DOCUMENT_INDEXING_VIEW
permission_document_indexing_create, permission_document_indexing_edit,
permission_document_indexing_delete,
permission_document_indexing_rebuild_indexes,
permission_document_indexing_setup, permission_document_indexing_view
)
@@ -21,22 +21,22 @@ def is_not_root_node(context):
return not context['resolved_object'].is_root_node()
link_document_index_list = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW, PERMISSION_DOCUMENT_VIEW], text=_('Indexes'), view='indexing:document_index_list', args='object.pk')
link_index_list = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW], text=_('Index list'), view='indexing:index_list')
link_document_index_list = Link(permissions=[permission_document_indexing_view, permission_document_view], text=_('indexes'), view='indexing:document_index_list', args='object.pk')
link_index_list = Link(permissions=[permission_document_indexing_view], text=_('index list'), view='indexing:index_list')
link_index_main_menu = Link(icon='fa fa-list-ul', text=_('Indexes'), view='indexing:index_list')
link_index_parent = Link(condition=is_not_instance_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_VIEW], text=_('Go up one level'), view='indexing:index_instance_node_view', args='object.parent.pk')
link_index_setup = Link(icon='fa fa-list-ul', permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Indexes'), view='indexing:index_setup_list')
link_index_setup_list = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Indexes'), view='indexing:index_setup_list')
link_index_setup_create = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_CREATE], text=_('Create index'), view='indexing:index_setup_create')
link_index_setup_edit = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Edit'), view='indexing:index_setup_edit', args='resolved_object.pk')
link_index_setup_delete = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_DELETE], tags='dangerous', text=_('Delete'), view='indexing:index_setup_delete', args='resolved_object.pk')
link_index_setup_view = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Tree template'), view='indexing:index_setup_view', args='resolved_object.pk')
link_index_setup_document_types = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_EDIT], text=_('Document types'), view='indexing:index_setup_document_types', args='resolved_object.pk')
link_index_parent = Link(condition=is_not_instance_root_node, permissions=[permission_document_indexing_view], text=_('go up one level'), view='indexing:index_instance_node_view', args='object.parent.pk')
link_index_setup = Link(icon='fa fa-list-ul', permissions=[permission_document_indexing_setup], text=_('indexes'), view='indexing:index_setup_list')
link_index_setup_list = Link(permissions=[permission_document_indexing_setup], text=_('indexes'), view='indexing:index_setup_list')
link_index_setup_create = Link(permissions=[permission_document_indexing_create], text=_('create index'), view='indexing:index_setup_create')
link_index_setup_edit = Link(permissions=[permission_document_indexing_edit], text=_('edit'), view='indexing:index_setup_edit', args='resolved_object.pk')
link_index_setup_delete = Link(permissions=[permission_document_indexing_delete], tags='dangerous', text=_('delete'), view='indexing:index_setup_delete', args='resolved_object.pk')
link_index_setup_view = Link(permissions=[permission_document_indexing_setup], text=_('tree template'), view='indexing:index_setup_view', args='resolved_object.pk')
link_index_setup_document_types = Link(permissions=[permission_document_indexing_edit], text=_('document types'), view='indexing:index_setup_document_types', args='resolved_object.pk')
link_rebuild_index_instances = Link(
description=_('Deletes and creates from scratch all the document indexes.'),
permissions=[PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES],
permissions=[permission_document_indexing_rebuild_indexes],
text=_('Rebuild indexes'), view='indexing:rebuild_index_instances'
)
link_template_node_create = Link(permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('New child node'), view='indexing:template_node_create', args='resolved_object.pk')
link_template_node_edit = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], text=_('Edit'), view='indexing:template_node_edit', args='resolved_object.pk')
link_template_node_delete = Link(condition=is_not_root_node, permissions=[PERMISSION_DOCUMENT_INDEXING_SETUP], tags='dangerous', text=_('Delete'), view='indexing:template_node_delete', args='resolved_object.pk')
link_template_node_create = Link(permissions=[permission_document_indexing_setup], text=_('new child node'), view='indexing:template_node_create', args='resolved_object.pk')
link_template_node_edit = Link(condition=is_not_root_node, permissions=[permission_document_indexing_setup], text=_('edit'), view='indexing:template_node_edit', args='resolved_object.pk')
link_template_node_delete = Link(condition=is_not_root_node, permissions=[permission_document_indexing_setup], tags='dangerous', text=_('delete'), view='indexing:template_node_delete', args='resolved_object.pk')

View File

@@ -2,14 +2,13 @@ from __future__ import absolute_import, unicode_literals
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
from permissions.models import PermissionNamespace
document_indexing_namespace = PermissionNamespace('document_indexing', _('Indexing'))
namespace = PermissionNamespace('document_indexing', _('Indexing'))
PERMISSION_DOCUMENT_INDEXING_SETUP = Permission.objects.register(document_indexing_namespace, 'document_index_setup', _('Configure document indexes'))
PERMISSION_DOCUMENT_INDEXING_CREATE = Permission.objects.register(document_indexing_namespace, 'document_index_create', _('Create new document indexes'))
PERMISSION_DOCUMENT_INDEXING_EDIT = Permission.objects.register(document_indexing_namespace, 'document_index_edit', _('Edit document indexes'))
PERMISSION_DOCUMENT_INDEXING_DELETE = Permission.objects.register(document_indexing_namespace, 'document_index_delete', _('Delete document indexes'))
PERMISSION_DOCUMENT_INDEXING_VIEW = Permission.objects.register(document_indexing_namespace, 'document_index_view', _('View document indexes'))
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES = Permission.objects.register(document_indexing_namespace, 'document_rebuild_indexes', _('Rebuild document indexes'))
permission_document_indexing_setup = namespace.add_permission(name='document_index_setup', label=_('Configure document indexes'))
permission_document_indexing_create = namespace.add_permission(name='document_index_create', label=_('Create new document indexes'))
permission_document_indexing_edit = namespace.add_permission(name='document_index_edit', label=_('Edit document indexes'))
permission_document_indexing_delete = namespace.add_permission(name='document_index_delete', label=_('Delete document indexes'))
permission_document_indexing_view = namespace.add_permission(name='document_index_view', label=_('View document indexes'))
permission_document_indexing_rebuild_indexes = namespace.add_permission(name='document_rebuild_indexes', label=_('Rebuild document indexes'))

View File

@@ -16,17 +16,17 @@ from common.utils import encapsulate
from common.views import AssignRemoveView
from common.widgets import two_state_template
from documents.models import Document
from documents.permissions import PERMISSION_DOCUMENT_VIEW
from documents.permissions import permission_document_view
from documents.views import document_list
from permissions.models import Permission
from .forms import IndexForm, IndexTemplateNodeForm
from .models import Index, IndexInstanceNode, IndexTemplateNode
from .permissions import (
PERMISSION_DOCUMENT_INDEXING_CREATE, PERMISSION_DOCUMENT_INDEXING_DELETE,
PERMISSION_DOCUMENT_INDEXING_EDIT,
PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES,
PERMISSION_DOCUMENT_INDEXING_SETUP, PERMISSION_DOCUMENT_INDEXING_VIEW
permission_document_indexing_create, permission_document_indexing_delete,
permission_document_indexing_edit,
permission_document_indexing_rebuild_indexes,
permission_document_indexing_setup, permission_document_indexing_view
)
from .tasks import task_do_rebuild_all_indexes
from .widgets import index_instance_item_link, get_breadcrumbs, node_level
@@ -48,9 +48,9 @@ def index_setup_list(request):
queryset = Index.objects.all()
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_SETUP])
Permission.objects.check_permissions(request.user, [permission_document_indexing_setup])
except PermissionDenied:
queryset = AccessEntry.objects.filter_objects_by_access(PERMISSION_DOCUMENT_INDEXING_SETUP, request.user, queryset)
queryset = AccessEntry.objects.filter_objects_by_access(permission_document_indexing_setup, request.user, queryset)
context['object_list'] = queryset
@@ -59,7 +59,7 @@ def index_setup_list(request):
def index_setup_create(request):
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_CREATE])
Permission.objects.check_permissions(request.user, [permission_document_indexing_create])
if request.method == 'POST':
form = IndexForm(request.POST)
@@ -81,9 +81,9 @@ def index_setup_edit(request, index_pk):
index = get_object_or_404(Index, pk=index_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_EDIT])
Permission.objects.check_permissions(request.user, [permission_document_indexing_edit])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_CREATE, request.user, index)
AccessEntry.objects.check_access(permission_document_indexing_create, request.user, index)
if request.method == 'POST':
form = IndexForm(request.POST, instance=index)
@@ -106,9 +106,9 @@ def index_setup_delete(request, index_pk):
index = get_object_or_404(Index, pk=index_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_DELETE])
Permission.objects.check_permissions(request.user, [permission_document_indexing_delete])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_DELETE, request.user, index)
AccessEntry.objects.check_access(permission_document_indexing_delete, request.user, index)
post_action_redirect = reverse('indexing:index_setup_list')
@@ -142,9 +142,9 @@ def index_setup_view(request, index_pk):
index = get_object_or_404(Index, pk=index_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_SETUP])
Permission.objects.check_permissions(request.user, [permission_document_indexing_setup])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_SETUP, request.user, index)
AccessEntry.objects.check_access(permission_document_indexing_setup, request.user, index)
object_list = index.template_root.get_descendants(include_self=True)
@@ -175,9 +175,9 @@ class SetupIndexDocumentTypesView(AssignRemoveView):
self.index = get_object_or_404(Index, pk=self.kwargs['index_pk'])
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_EDIT])
Permission.objects.check_permissions(request.user, [permission_document_indexing_edit])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_EDIT, request.user, self.index)
AccessEntry.objects.check_access(permission_document_indexing_edit, request.user, self.index)
self.left_list_title = _('Document types not in index: %s') % self.index
self.right_list_title = _('Document types for index: %s') % self.index
@@ -208,9 +208,9 @@ def template_node_create(request, parent_pk):
parent_node = get_object_or_404(IndexTemplateNode, pk=parent_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_EDIT])
Permission.objects.check_permissions(request.user, [permission_document_indexing_edit])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_EDIT, request.user, parent_node.index)
AccessEntry.objects.check_access(permission_document_indexing_edit, request.user, parent_node.index)
if request.method == 'POST':
form = IndexTemplateNodeForm(request.POST)
@@ -233,9 +233,9 @@ def template_node_edit(request, node_pk):
node = get_object_or_404(IndexTemplateNode, pk=node_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_EDIT])
Permission.objects.check_permissions(request.user, [permission_document_indexing_edit])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_EDIT, request.user, node.index)
AccessEntry.objects.check_access(permission_document_indexing_edit, request.user, node.index)
if request.method == 'POST':
form = IndexTemplateNodeForm(request.POST, instance=node)
@@ -259,9 +259,9 @@ def template_node_delete(request, node_pk):
node = get_object_or_404(IndexTemplateNode, pk=node_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_EDIT])
Permission.objects.check_permissions(request.user, [permission_document_indexing_edit])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_EDIT, request.user, node.index)
AccessEntry.objects.check_access(permission_document_indexing_edit, request.user, node.index)
post_action_redirect = reverse('indexing:index_setup_view', args=[node.index.pk])
@@ -309,9 +309,9 @@ def index_list(request):
queryset = Index.objects.filter(enabled=True)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_VIEW])
Permission.objects.check_permissions(request.user, [permission_document_indexing_view])
except PermissionDenied:
queryset = AccessEntry.objects.filter_objects_by_access(PERMISSION_DOCUMENT_INDEXING_VIEW, request.user, queryset)
queryset = AccessEntry.objects.filter_objects_by_access(permission_document_indexing_view, request.user, queryset)
context['object_list'] = queryset
@@ -329,9 +329,9 @@ def index_instance_node_view(request, index_instance_node_pk):
breadcrumbs = get_breadcrumbs(index_instance)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_VIEW])
Permission.objects.check_permissions(request.user, [permission_document_indexing_view])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_DOCUMENT_INDEXING_VIEW, request.user, index_instance.index)
AccessEntry.objects.check_access(permission_document_indexing_view, request.user, index_instance.index)
title = mark_safe(_('Contents for index: %s') % breadcrumbs)
@@ -371,7 +371,7 @@ def rebuild_index_instances(request):
"""
Confirmation view to execute the tool: do_rebuild_all_indexes
"""
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_INDEXING_REBUILD_INDEXES])
Permission.objects.check_permissions(request.user, [permission_document_indexing_rebuild_indexes])
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse(settings.LOGIN_REDIRECT_URL))))
@@ -399,9 +399,9 @@ def document_index_list(request, document_id):
queryset = document.node_instances.all()
try:
# TODO: should be AND not OR
Permission.objects.check_permissions(request.user, [PERMISSION_DOCUMENT_VIEW, PERMISSION_DOCUMENT_INDEXING_VIEW])
Permission.objects.check_permissions(request.user, [permission_document_view, permission_document_indexing_view])
except PermissionDenied:
queryset = AccessEntry.objects.filter_objects_by_access(PERMISSION_DOCUMENT_INDEXING_VIEW, request.user, queryset, related='index')
queryset = AccessEntry.objects.filter_objects_by_access(permission_document_indexing_view, request.user, queryset, related='index')
for index_instance in queryset:
object_list.append(get_breadcrumbs(index_instance, single_link=True, include_count=True))