Пример #1
0
class TestTemplateTags(TestCase):

    def setUp(self):
        self.registry = PermissionsRegistry()
        self.registry.register(can_do)
        self.registry.register(can_do_with_model, model=Model)
        self.template = Template(
            '{% load permissions %}'
            '{% if user|can_do %}can_do{% endif %}'
            '{% if user|can_do_with_model:instance %}can_do_with_model{% endif %}'
        )

    def test_can_do(self):
        context = Context({'user': object(), 'instance': None})
        result = self.template.render(context)
        self.assertIn('can_do', result)

    def test_cannot_do(self):
        context = Context({'user': None, 'instance': None})
        result = self.template.render(context)
        self.assertNotIn('can_do', result)

    def test_can_do_with_model(self):
        context = Context({'user': object(), 'instance': object()})
        result = self.template.render(context)
        self.assertIn('can_do_with_model', result)

    def test_cannot_do_with_model(self):
        context = Context({'user': None, 'instance': object()})
        result = self.template.render(context)
        self.assertNotIn('can_do_with_model', result)
Пример #2
0
 def setUp(self):
     self.registry = PermissionsRegistry()
     self.registry.register(can_do)
     self.registry.register(can_do_with_model, model=Model)
     self.template = Template(
         '{% load permissions %}'
         '{% if user|can_do %}can_do{% endif %}'
         '{% if user|can_do_with_model:instance %}can_do_with_model{% endif %}'
     )
Пример #3
0
    def test_perm_func_is_not_called_when_user_is_staff_and_allow_staff_is_set(self):
        registry = PermissionsRegistry(allow_staff=True)

        @registry.register
        def perm(user):
            raise PermissionsError('Should not be raised')

        @registry.perm
        def view(request):
            pass

        request = self.request_factory.get('/things/1')
        request.user = User(is_staff=True)
        view(request)
Пример #4
0
    def test_ensure_custom_unauthenticated_handler_is_called(self):
        def handler(request):
            handler.called = True
        handler.called = False

        registry = PermissionsRegistry(unauthenticated_handler=handler)

        @registry.register
        def perm(user):
            return False

        @registry.require('perm')
        def view(request):
            pass

        request = self.request_factory.get('/things/1')
        request.user = AnonymousUser()
        self.assertFalse(handler.called)
        view(request, 1)
        self.assertTrue(handler.called)
Пример #5
0
from permissions import PermissionsRegistry

# just create a permissions object we can tack permissions onto in app/perms.py
permissions = PermissionsRegistry()

# you can put "project level" permissions in here. For app specific
# permissions, put them in app_dir/perms.py


@permissions.register
def is_active(user):
    return user.is_active


@permissions.register
def is_staff(user):
    return user.is_staff