PEP8 cleanups
Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -62,7 +62,9 @@ class APIObjectACLListView(generics.ListCreateAPIView):
|
||||
if not self.request:
|
||||
return None
|
||||
|
||||
return super(APIObjectACLListView, self).get_serializer(*args, **kwargs)
|
||||
return super(APIObjectACLListView, self).get_serializer(
|
||||
*args, **kwargs
|
||||
)
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request.method == 'GET':
|
||||
@@ -152,7 +154,9 @@ class APIObjectACLPermissionListView(generics.ListCreateAPIView):
|
||||
return WritableAccessControlListPermissionSerializer
|
||||
|
||||
def get_serializer_context(self):
|
||||
context = super(APIObjectACLPermissionListView, self).get_serializer_context()
|
||||
context = super(
|
||||
APIObjectACLPermissionListView, self
|
||||
).get_serializer_context()
|
||||
if self.kwargs:
|
||||
context.update(
|
||||
{
|
||||
@@ -202,7 +206,9 @@ class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView):
|
||||
return self.get_acl().permissions.all()
|
||||
|
||||
def get_serializer_context(self):
|
||||
context = super(APIObjectACLPermissionView, self).get_serializer_context()
|
||||
context = super(
|
||||
APIObjectACLPermissionView, self
|
||||
).get_serializer_context()
|
||||
if self.kwargs:
|
||||
context.update(
|
||||
{
|
||||
|
||||
@@ -3,7 +3,6 @@ from __future__ import absolute_import, unicode_literals
|
||||
from functools import reduce
|
||||
import logging
|
||||
import operator
|
||||
import warnings
|
||||
|
||||
from django.contrib.contenttypes.fields import GenericForeignKey
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
@@ -17,7 +16,6 @@ from django.utils.translation import ugettext
|
||||
from mayan.apps.common.utils import (
|
||||
get_related_field, resolve_attribute, return_related
|
||||
)
|
||||
from mayan.apps.common.warnings import InterfaceWarning
|
||||
from mayan.apps.permissions import Permission
|
||||
from mayan.apps.permissions.models import StoredPermission
|
||||
|
||||
@@ -32,7 +30,9 @@ class AccessControlListManager(models.Manager):
|
||||
Implement a 3 tier permission system, involving a permissions, an actor
|
||||
and an object
|
||||
"""
|
||||
def _get_acl_filters(self, queryset, stored_permission, user, related_field_name=None):
|
||||
def _get_acl_filters(
|
||||
self, queryset, stored_permission, user, related_field_name=None
|
||||
):
|
||||
"""
|
||||
This method does the bulk of the work. It generates filters for the
|
||||
AccessControlList model to determine if there are ACL entries for the
|
||||
@@ -113,17 +113,25 @@ class AccessControlListManager(models.Manager):
|
||||
for related_field_model_related_field_name in related_field_model_related_fields:
|
||||
related_field_name = '{}__{}'.format(related_field_name, related_field_model_related_field_name)
|
||||
related_field_inherited_acl_queries = self._get_acl_filters(
|
||||
queryset=queryset, stored_permission=stored_permission,
|
||||
user=user, related_field_name=related_field_name
|
||||
queryset=queryset,
|
||||
stored_permission=stored_permission, user=user,
|
||||
related_field_name=related_field_name
|
||||
)
|
||||
if related_field_inherited_acl_queries:
|
||||
relation_result.append(reduce(operator.and_, related_field_inherited_acl_queries))
|
||||
relation_result.append(
|
||||
reduce(
|
||||
operator.and_,
|
||||
related_field_inherited_acl_queries
|
||||
)
|
||||
)
|
||||
|
||||
if relation_result:
|
||||
result.append(reduce(operator.or_, relation_result))
|
||||
else:
|
||||
# Case 1: Original model, single ContentType, multiple object id
|
||||
content_type = ContentType.objects.get_for_model(model=queryset.model)
|
||||
content_type = ContentType.objects.get_for_model(
|
||||
model=queryset.model
|
||||
)
|
||||
field_lookup = 'id__in'
|
||||
acl_filter = self.filter(
|
||||
content_type=content_type, permissions=stored_permission,
|
||||
@@ -149,7 +157,9 @@ class AccessControlListManager(models.Manager):
|
||||
related_field_name=related_field_name, user=user
|
||||
)
|
||||
if inherited_acl_queries:
|
||||
relation_result.append(reduce(operator.and_, inherited_acl_queries))
|
||||
relation_result.append(
|
||||
reduce(operator.and_, inherited_acl_queries)
|
||||
)
|
||||
|
||||
if relation_result:
|
||||
result.append(reduce(operator.or_, relation_result))
|
||||
@@ -285,7 +295,9 @@ class AccessControlListManager(models.Manager):
|
||||
parent_object = return_related(
|
||||
instance=obj, related_field=related_field
|
||||
)
|
||||
content_type = ContentType.objects.get_for_model(model=parent_object)
|
||||
content_type = ContentType.objects.get_for_model(
|
||||
model=parent_object
|
||||
)
|
||||
try:
|
||||
queryset = queryset | self.get(
|
||||
content_type=content_type, object_id=parent_object.pk,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.11.11 on 2018-04-02 03:39
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
@@ -14,6 +12,9 @@ class Migration(migrations.Migration):
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='accesscontrollist',
|
||||
options={'ordering': ('pk',), 'verbose_name': 'Access entry', 'verbose_name_plural': 'Access entries'},
|
||||
options={
|
||||
'ordering': ('pk',), 'verbose_name': 'Access entry',
|
||||
'verbose_name_plural': 'Access entries'
|
||||
},
|
||||
),
|
||||
]
|
||||
|
||||
@@ -12,7 +12,9 @@ from rest_framework.reverse import reverse
|
||||
from mayan.apps.common.serializers import ContentTypeSerializer
|
||||
from mayan.apps.permissions import Permission
|
||||
from mayan.apps.permissions.models import Role, StoredPermission
|
||||
from mayan.apps.permissions.serializers import PermissionSerializer, RoleSerializer
|
||||
from mayan.apps.permissions.serializers import (
|
||||
PermissionSerializer, RoleSerializer
|
||||
)
|
||||
|
||||
from .models import AccessControlList
|
||||
|
||||
@@ -81,7 +83,9 @@ class AccessControlListPermissionSerializer(PermissionSerializer):
|
||||
)
|
||||
|
||||
|
||||
class WritableAccessControlListPermissionSerializer(AccessControlListPermissionSerializer):
|
||||
class WritableAccessControlListPermissionSerializer(
|
||||
AccessControlListPermissionSerializer
|
||||
):
|
||||
permission_pk = serializers.CharField(
|
||||
help_text=_(
|
||||
'Primary key of the new permission to grant to the access control '
|
||||
|
||||
@@ -105,7 +105,8 @@ class PermissionTestCase(ACLTestMixin, BaseTestCase):
|
||||
|
||||
try:
|
||||
AccessControlList.objects.check_access(
|
||||
obj=self.test_object_child, permissions=(self.test_permission,),
|
||||
obj=self.test_object_child,
|
||||
permissions=(self.test_permission,),
|
||||
user=self._test_case_user
|
||||
)
|
||||
except PermissionDenied:
|
||||
@@ -123,7 +124,8 @@ class PermissionTestCase(ACLTestMixin, BaseTestCase):
|
||||
|
||||
try:
|
||||
AccessControlList.objects.check_access(
|
||||
obj=self.test_object_child, permissions=(self.test_permission,),
|
||||
obj=self.test_object_child,
|
||||
permissions=(self.test_permission,),
|
||||
user=self._test_case_user
|
||||
)
|
||||
except PermissionDenied:
|
||||
@@ -233,7 +235,9 @@ class InheritedPermissionTestCase(ACLTestMixin, BaseTestCase):
|
||||
|
||||
self.assertTrue(self.test_permission.stored_permission in queryset)
|
||||
|
||||
def test_retrieve_inherited_related_grandparent_parent_child_permission(self):
|
||||
def test_retrieve_inherited_related_grandparent_parent_child_permission(
|
||||
self
|
||||
):
|
||||
self._create_test_permission()
|
||||
|
||||
self._create_test_model(model_name='TestModelGrandParent')
|
||||
|
||||
@@ -176,7 +176,8 @@ class ACLPermissionsView(AddRemoveView):
|
||||
|
||||
# Sort permissions by their translatable label
|
||||
object_list = sorted(
|
||||
queryset, key=lambda permission: permission.volatile_permission.label
|
||||
queryset,
|
||||
key=lambda permission: permission.volatile_permission.label
|
||||
)
|
||||
|
||||
# Group permissions by namespace
|
||||
@@ -185,7 +186,9 @@ class ACLPermissionsView(AddRemoveView):
|
||||
permission.volatile_permission.namespace.label,
|
||||
[]
|
||||
)
|
||||
namespaces_dictionary[permission.volatile_permission.namespace.label].append(
|
||||
namespaces_dictionary[
|
||||
permission.volatile_permission.namespace.label
|
||||
].append(
|
||||
(permission.pk, force_text(permission))
|
||||
)
|
||||
|
||||
|
||||
@@ -98,7 +98,9 @@ class GrantAccessAction(WorkflowAction):
|
||||
|
||||
def get_form_schema(self, *args, **kwargs):
|
||||
self.fields['content_type']['kwargs']['queryset'] = ModelPermission.get_classes(as_content_type=True)
|
||||
self.fields['permissions']['kwargs']['choices'] = Permission.all(as_choices=True)
|
||||
self.fields['permissions']['kwargs']['choices'] = Permission.all(
|
||||
as_choices=True
|
||||
)
|
||||
return super(GrantAccessAction, self).get_form_schema(*args, **kwargs)
|
||||
|
||||
def get_execute_data(self):
|
||||
@@ -113,7 +115,11 @@ class GrantAccessAction(WorkflowAction):
|
||||
pk=self.form_data['object_id']
|
||||
)
|
||||
self.roles = Role.objects.filter(pk__in=self.form_data['roles'])
|
||||
self.permissions = [Permission.get(pk=permission, proxy_only=True) for permission in self.form_data['permissions']]
|
||||
self.permissions = [
|
||||
Permission.get(
|
||||
pk=permission, proxy_only=True
|
||||
) for permission in self.form_data['permissions']
|
||||
]
|
||||
|
||||
def execute(self, context):
|
||||
self.get_execute_data()
|
||||
|
||||
BIN
mayan/apps/tags/.models.py.swp
Normal file
BIN
mayan/apps/tags/.models.py.swp
Normal file
Binary file not shown.
@@ -3,7 +3,6 @@ from __future__ import unicode_literals
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from mayan.apps.common.tests import GenericViewTestCase
|
||||
from mayan.apps.documents.permissions import permission_document_view
|
||||
from mayan.apps.documents.tests import GenericDocumentViewTestCase
|
||||
|
||||
from ..models import Tag
|
||||
@@ -122,32 +121,6 @@ class TagViewTestCase(TagTestMixin, TagViewTestMixin, GenericViewTestCase):
|
||||
|
||||
|
||||
class TagDocumentViewTestCase(TagTestMixin, TagViewTestMixin, GenericDocumentViewTestCase):
|
||||
"""
|
||||
def test_document_tags_widget_no_permissions(self):
|
||||
self._create_test_tag()
|
||||
|
||||
self.test_tag.documents.add(self.test_document)
|
||||
|
||||
response = self._request_test_tag_document_list_view()
|
||||
self.assertNotContains(
|
||||
response=response, text=self.test_tag.label, status_code=200
|
||||
)
|
||||
|
||||
def test_document_tags_widget_with_tag_access(self):
|
||||
self._create_test_tag()
|
||||
|
||||
self.test_tag.documents.add(self.test_document)
|
||||
|
||||
self.grant_access(obj=self.test_tag, permission=permission_tag_view)
|
||||
self.grant_access(
|
||||
obj=self.test_document, permission=permission_document_view
|
||||
)
|
||||
|
||||
response = self._request_test_tag_document_list_view()
|
||||
self.assertContains(
|
||||
response=response, text=self.test_tag.label, status_code=200
|
||||
)
|
||||
"""
|
||||
def test_document_tags_list_no_permissions(self):
|
||||
self._create_test_tag()
|
||||
|
||||
@@ -199,7 +172,6 @@ class TagDocumentViewTestCase(TagTestMixin, TagViewTestMixin, GenericDocumentVie
|
||||
response=response, text=force_text(self.test_tag), status_code=200
|
||||
)
|
||||
|
||||
|
||||
def test_document_attach_tag_view_no_permission(self):
|
||||
self._create_test_tag()
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals
|
||||
import logging
|
||||
|
||||
from django.contrib import messages
|
||||
from django.shortcuts import get_object_or_404, reverse
|
||||
from django.shortcuts import reverse
|
||||
from django.template import RequestContext
|
||||
from django.urls import reverse_lazy
|
||||
from django.utils.translation import ugettext_lazy as _, ungettext
|
||||
@@ -16,7 +16,6 @@ from mayan.apps.common.generics import (
|
||||
from mayan.apps.common.mixins import ExternalObjectMixin
|
||||
from mayan.apps.documents.models import Document
|
||||
from mayan.apps.documents.views import DocumentListView
|
||||
from mayan.apps.documents.permissions import permission_document_view
|
||||
|
||||
from .forms import TagMultipleSelectionForm
|
||||
from .icons import (
|
||||
|
||||
Reference in New Issue
Block a user