Django-guardian

There is some extensions for django-guardian package.

Forms

class atom.ext.guardian.forms.PermissionsTranslationMixin(*args, **kwargs)[source]
class atom.ext.guardian.forms.TranslatedUserObjectPermissionsForm(*args, **kwargs)[source]
base_fields = OrderedDict()
declared_fields = OrderedDict()
media

Tests

Example usage

from django.core.urlresolvers import reverse
from django.test import TestCase

from atom.ext.guardian.tests import PermissionStatusMixin
from feder.monitorings.factories import MonitoringFactory
from feder.users.factories import UserFactory

class ObjectMixin(object):
    def setUp(self):
        self.user = UserFactory(username='john')
        self.monitoring = self.permission_object = MonitoringFactory()
        self.case = CaseFactory(monitoring=self.monitoring)
        self.from_user = OutgoingLetterFactory(title='Wniosek',
                                               case__monitoring=self.monitoring)
        self.from_institution = IncomingLetterFactory(title='Odpowiedz',
                                                      case__monitoring=self.monitoring)

class LetterRssFeedTestCase(ObjectMixin, PermissionStatusMixin, TestCase):
    status_anonymous = 200
    status_no_permission = 200
    permission = []

    def get_url(self):
        return reverse('letters:rss')

Docstrings

class atom.ext.guardian.tests.PermissionStatusMixin[source]

Mixin to verify object permission status codes for different users

Require user with username=’john’ and password=’pass’

Attributes:
permission (list): Description status_anonymous (int): Status code for anonymouser status_has_permission (int): Status code for user with permission status_no_permission (403): Status code for user without permission url (string): url to test
get_permission()[source]

Returns the permission to assign for granted permission user

Returns:
list: A list of permission in format `codename.permission_name`
Raises:
ImproperlyConfigured: Missing a permission to assign
get_permission_object()[source]

Returns object of permission-carrying object for grant permission

get_url()[source]

Get url to tests

Returns:
str: url to test
Raises:
ImproperlyConfigured: Missing a url to test
grant_permission()[source]

Grant permission to user in self.user

Returns:
TYPE: Description
login_permitted_user()[source]

Login client to user with granted permissions

permission = None
setUp()[source]
status_anonymous = 302
status_has_permission = 200
status_no_permission = 403
test_status_code_for_anonymous_user()[source]

A test status code of response for anonymous user

test_status_code_for_privileged_user()[source]

A test for status code of response for privileged user

Grant permission to permission-carrying object and login before test

test_status_code_for_signed_user()[source]

A test for status code of response for signed (logged-in) user

Only login before test.

url = None