Ejemplo n.º 1
0
    def test_multiple_arguments(self):
        req = self.create_request(self.admin)

        @auth.check(authorisation.ProjectRole,
                    args=['project', 'user', 'role'])
        def view(request, project_role):
            return project_role

        self.assertRaises(KeyError, view, req, id=2)

        pr = Project(name="test")
        pr.description = "bla"
        pr.owner = self.admin
        pr.insert_user = self.admin
        pr.guest_role = authorisation.Role.objects.get(label="reader",
                                                       projectlevel=False)
        pr.save()

        pj = authorisation.ProjectRole(user=self.admin, project=pr)
        pj.role = authorisation.Role.objects.get(label="reader",
                                                 projectlevel=True)
        pj.save()

        self.assertEquals(
            pj, view(req, project=pr.id, user=self.admin.id, role=pj.role.id))
Ejemplo n.º 2
0
    def setUp(self):
        super(TestCheckPerm, self).setUp()

        self.project = Project()
        self.project.name = 'test'
        self.project.description = 'test_project'
        self.project.owner = self.admin
        self.project.insert_user = self.admin
        self.project.guest_role = authorisation.Role.objects.get(
            label="reader", projectlevel=True)

        self.project.save()

        authorisation.ProjectRole(
            project=self.project,
            user=self.reader,
            role=authorisation.Role.objects.get(label="read/write",
                                                projectlevel=True)).save()
Ejemplo n.º 3
0
    def setUp(self):
        super(TestCheckPerm, self).setUp()

        self.project = Project()
        self.project.name = 'test'
        self.project.description = 'test_project'
        self.project.owner = self.admin
        self.project.insert_user = self.admin
        self.project.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=True)

        self.project.save()

        authorisation.ProjectRole(project=self.project,
                                  user=self.reader,
                                  role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save()
Ejemplo n.º 4
0
    def test_multiple_arguments(self):
        req = self.create_request(self.admin)

        @auth.check(authorisation.ProjectRole, args=['project', 'user', 'role'])
        def view(request, project_role):
            return project_role

        self.assertRaises(KeyError, view, req, id=2)

        pr = Project(name="test")
        pr.description = "bla"
        pr.owner = self.admin
        pr.insert_user = self.admin
        pr.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=False)
        pr.save()

        pj = authorisation.ProjectRole(user=self.admin, project=pr)
        pj.role = authorisation.Role.objects.get(label="reader", projectlevel=True)
        pj.save()

        self.assertEquals(pj, view(req, project=pr.id, user=self.admin.id, role=pj.role.id))
Ejemplo n.º 5
0
class TestCheckPerm(TestCase):
    def setUp(self):
        super(TestCheckPerm, self).setUp()

        self.project = Project()
        self.project.name = 'test'
        self.project.description = 'test_project'
        self.project.owner = self.admin
        self.project.insert_user = self.admin
        self.project.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=True)

        self.project.save()

        authorisation.ProjectRole(project=self.project,
                                  user=self.reader,
                                  role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save()

    def tearDown(self):
        self.project.delete()

    def test_privilege(self):
        adreq = self.create_request(self.superadmin)
        rereq = self.create_request(self.reader)

        @auth.check_perm("view_users")
        def view(request):
            pass

        self.assertEquals(None, view(adreq))
        self.assertEquals(550, view(rereq).status_code)

    def test_non_string_as_arg(self):
        for typ in [None, [], (), 45, AssertionError]:
            self.assertRaises(AssertionError, lambda: auth.check_perm("view_users", arg=typ))

        self.assertIsNotNone(auth.check_perm("view_users", arg='bla'))

    def test_non_existing_privilege(self):
        req = self.create_request(self.admin)

        # add_articles doesn't exist globally
        @auth.check_perm("add_articles")
        def view(request):
            pass

        self.assertRaises(authorisation.Privilege.DoesNotExist, view, req)

    def test_onproject_and_arg(self):
        non_member_req = self.create_request(self.read_write)
        member_req = self.create_request(self.reader)

        @auth.check_perm("add_articles", True)
        def view1(request, id):
            pass

        @auth.check_perm("add_articles", True, 'pid')
        def view2(request, pid):
            pass

        self.assertEquals(None, view1(member_req, id=self.project.id))
        self.assertEquals(550, view1(non_member_req, id=self.project.id).status_code)
        self.assertRaises(Exception, lambda: view1(member_req, pid=self.project.id))

        self.assertEquals(None, view2(member_req, pid=self.project.id))
        self.assertRaises(Exception, lambda: view2(member_req, id=self.project.id))

    def test_argument_passing(self):
        req = self.create_request(self.superadmin)

        @auth.check_perm("view_users")
        def view1(request, a, b, c=None, d=5):
            return (a, b, c, d)

        a, b, c, d = 1, 2, 3, 4

        self.assertEquals((a,b,c,d), view1(req, a, b, c, d))
        self.assertEquals((a,b,c,d), view1(req, a, b, c=c, d=d))
        self.assertEquals((a,b,c,d), view1(req, a, b=b, c=c, d=d))
Ejemplo n.º 6
0
class TestCheckPerm(TestCase):
    def setUp(self):
        super(TestCheckPerm, self).setUp()

        self.project = Project()
        self.project.name = 'test'
        self.project.description = 'test_project'
        self.project.owner = self.admin
        self.project.insert_user = self.admin
        self.project.guest_role = authorisation.Role.objects.get(
            label="reader", projectlevel=True)

        self.project.save()

        authorisation.ProjectRole(
            project=self.project,
            user=self.reader,
            role=authorisation.Role.objects.get(label="read/write",
                                                projectlevel=True)).save()

    def tearDown(self):
        self.project.delete()

    def test_privilege(self):
        adreq = self.create_request(self.superadmin)
        rereq = self.create_request(self.reader)

        @auth.check_perm("view_users")
        def view(request):
            pass

        self.assertEquals(None, view(adreq))
        self.assertEquals(550, view(rereq).status_code)

    def test_non_string_as_arg(self):
        for typ in [None, [], (), 45, AssertionError]:
            self.assertRaises(AssertionError,
                              lambda: auth.check_perm("view_users", arg=typ))

        self.assertIsNotNone(auth.check_perm("view_users", arg='bla'))

    def test_non_existing_privilege(self):
        req = self.create_request(self.admin)

        # add_articles doesn't exist globally
        @auth.check_perm("add_articles")
        def view(request):
            pass

        self.assertRaises(authorisation.Privilege.DoesNotExist, view, req)

    def test_onproject_and_arg(self):
        non_member_req = self.create_request(self.read_write)
        member_req = self.create_request(self.reader)

        @auth.check_perm("add_articles", True)
        def view1(request, id):
            pass

        @auth.check_perm("add_articles", True, 'pid')
        def view2(request, pid):
            pass

        self.assertEquals(None, view1(member_req, id=self.project.id))
        self.assertEquals(
            550,
            view1(non_member_req, id=self.project.id).status_code)
        self.assertRaises(Exception,
                          lambda: view1(member_req, pid=self.project.id))

        self.assertEquals(None, view2(member_req, pid=self.project.id))
        self.assertRaises(Exception,
                          lambda: view2(member_req, id=self.project.id))

    def test_argument_passing(self):
        req = self.create_request(self.superadmin)

        @auth.check_perm("view_users")
        def view1(request, a, b, c=None, d=5):
            return (a, b, c, d)

        a, b, c, d = 1, 2, 3, 4

        self.assertEquals((a, b, c, d), view1(req, a, b, c, d))
        self.assertEquals((a, b, c, d), view1(req, a, b, c=c, d=d))
        self.assertEquals((a, b, c, d), view1(req, a, b=b, c=c, d=d))