Example #1
0
    def external_users(self, experiment_id):
        """
        returns a list of groups which have external ACL rules

        :param experiment_id: the ID of the experiment to be edited
        :type experiment_id: string

        """

        from tardis.tardis_portal.models import ObjectACL
        acl = ObjectACL.objects.exclude(pluginId=django_user)
        acl = acl.exclude(pluginId='django_group')
        acl = acl.filter(content_type__name='experiment',
                         object_id=experiment_id)

        if not acl:
            return None

        from tardis.tardis_portal.auth import AuthService
        authService = AuthService()

        result = []
        for a in acl:
            group = authService.searchGroups(plugin=a.pluginId,
                                             name=a.entityId)
            if group:
                result += group
        return result
Example #2
0
    def external_users(self, request, experiment_id):
        """
        returns a list of groups which have external ACL rules

        :param request: a HTTP Request instance
        :type request: :py:class:`django.http.HttpRequest`
        :param experiment_id: the ID of the experiment to be edited
        :type experiment_id: string

        """

        from tardis.tardis_portal.models import ExperimentACL
        acl = ExperimentACL.objects.exclude(pluginId=django_user)
        acl = acl.exclude(pluginId=django_group)
        acl = acl.filter(experiment__id=experiment_id)

        if not acl:
            return None

        from tardis.tardis_portal.auth import AuthService
        authService = AuthService()

        result = []
        for a in acl:
            group = authService.searchGroups(plugin=a.pluginId,
                                             name=a.entityId)
            if group:
                result += group
        return result
Example #3
0
    def external_users(self, request, experiment_id):
        """
        returns a list of groups which have external ACL rules

        :param request: a HTTP Request instance
        :type request: :py:class:`django.http.HttpRequest`
        :param experiment_id: the ID of the experiment to be edited
        :type experiment_id: string

        """

        from tardis.tardis_portal.models import ExperimentACL
        acl = ExperimentACL.objects.exclude(pluginId=django_user)
        acl = acl.exclude(pluginId=django_group)
        acl = acl.filter(experiment__id=experiment_id)

        if not acl:
            return None

        from tardis.tardis_portal.auth import AuthService
        authService = AuthService()

        result = []
        for a in acl:
            group = authService.searchGroups(plugin=a.pluginId,
                                             name=a.entityId)
            if group:
                result += group
        return result
Example #4
0
    def external_users(self, experiment_id):
        """
        returns a list of groups which have external ACL rules

        :param experiment_id: the ID of the experiment to be edited
        :type experiment_id: string

        """

        from tardis.tardis_portal.models import ObjectACL
        acl = ObjectACL.objects.exclude(pluginId=django_user)
        acl = acl.exclude(pluginId='django_group')
        acl = acl.filter(content_type__name='experiment',
                         object_id=experiment_id)

        if not acl:
            return None

        from tardis.tardis_portal.auth import AuthService
        authService = AuthService()

        result = []
        for a in acl:
            group = authService.searchGroups(plugin=a.pluginId,
                                             name=a.entityId)
            if group:
                result += group
        return result
Example #5
0
 def testInitialisation(self):
     from tardis.tardis_portal.auth import AuthService
     s = MockSettings()
     s.USER_PROVIDERS = \
         ('tardis.tardis_portal.auth.localdb_auth.DjangoUserProvider',)
     s.GROUP_PROVIDERS = \
         ('tardis.tardis_portal.auth.localdb_auth.DjangoGroupProvider',)
     a = AuthService(settings=s)
     a._manual_init()
     self.assertEqual(len(a._user_providers), 1)
     self.assertEqual(len(a._group_providers), 1)
Example #6
0
 def testInitialisation(self):
     from tardis.tardis_portal.auth import AuthService
     s = MockSettings()
     s.USER_PROVIDERS = \
         ('tardis.tardis_portal.auth.localdb_auth.DjangoUserProvider',)
     s.GROUP_PROVIDERS = \
         ('tardis.tardis_portal.auth.localdb_auth.DjangoGroupProvider',)
     a = AuthService(settings=s)
     a._manual_init()
     self.assertEqual(len(a._user_providers), 1)
     self.assertEqual(len(a._group_providers), 1)
    def testGetGroupsForEntity(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()

        # check the correct group provider is registered
        self.assertEqual(len(a._group_providers), 1)

        self.assertEqual(len([g for g in a.getGroupsForEntity('user1')]), 2)
        self.assertEqual(len([g for g in a.getGroupsForEntity('Group 123')]),
                         1)
Example #8
0
    def setUp(self):
        from django.contrib.auth.models import User
        self.user1 = User.objects.create_user('mockdb_user1', '', 'secret')
        self.user2 = User.objects.create_user('mockdb_user2', '', 'secret')
        self.user3 = User.objects.create_user('mockdb_user3', '', 'secret')

        from tardis.tardis_portal.auth import AuthService, auth_service
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()
        self._auth_service_group_providers = auth_service._group_providers
        # add the local group provider to the singleton auth_service
        auth_service._group_providers = a._group_providers
Example #9
0
    def setUp(self):
        from django.contrib.auth.models import User
        self.user1 = User.objects.create_user('mockdb_user1', '', 'secret')
        self.user2 = User.objects.create_user('mockdb_user2', '', 'secret')
        self.user3 = User.objects.create_user('mockdb_user3', '', 'secret')

        from tardis.tardis_portal.auth import AuthService, auth_service
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()
        self._auth_service_group_providers = auth_service._group_providers
        # add the local group provider to the singleton auth_service
        auth_service._group_providers = a._group_providers
Example #10
0
    def testAuthenticate(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.USER_PROVIDERS = ()
        s.GROUP_PROVIDERS = ()
        s.AUTH_PROVIDERS = (('mockauth', 'Mock Auth',
            'tardis.tardis_portal.tests.test_authservice.MockAuthProvider'),)
        a = AuthService(settings=s)

        request = MockRequest()
        request.setPost('username', 'user1')
        request.setPost('authMethod', 'mockdb')

        user = a.authenticate(authMethod='mockauth', request=request)

        realUser = User.objects.get(username='******')
        self.assertEqual(user, realUser)
Example #11
0
    def testAuthenticate(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.USER_PROVIDERS = ()
        s.GROUP_PROVIDERS = ()
        s.AUTH_PROVIDERS = (('mockauth', 'Mock Auth',
            'tardis.tardis_portal.tests.test_authservice.MockAuthProvider'),)
        a = AuthService(settings=s)

        request = MockRequest()
        request.setPost('username', 'user1')
        request.setPost('authMethod', 'mockdb')

        user = a.authenticate(authMethod='mockauth', request=request)

        realUser = User.objects.get(username='******')
        self.assertEqual(user, realUser)
Example #12
0
    def testGroupSearch(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()
        # check the correct group provider is registered
        self.assertEqual(len(a._group_providers), 1)

        # test searching for groups by substring
        self.assertEqual(len(a.searchGroups(name='Group')), 3)
        self.assertEqual(len(a.searchGroups(name='123')), 1)
        self.assertEqual(a.searchGroups(name='123')[0]['id'], '1')
        self.assertEqual(a.searchGroups(name='123')[0]['pluginname'], 'mockdb')

        # test limiting the number of results
        self.assertEqual(len(a.searchGroups(name='Group', max_results=1)), 1)

        # test sorting the result
        self.assertEqual(
            a.searchGroups(name='Group', sort_by='name')[0]['id'], '1')
Example #13
0
    def testGroupSearch(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()
        # check the correct group provider is registered
        self.assertEqual(len(a._group_providers), 1)

        # test searching for groups by substring
        self.assertEqual(len(a.searchGroups(name='Group')), 3)
        self.assertEqual(len(a.searchGroups(name='123')), 1)
        self.assertEqual(a.searchGroups(name='123')[0]['id'], '1')
        self.assertEqual(a.searchGroups(name='123')[0]['pluginname'], 'mockdb')

        # test limiting the number of results
        self.assertEqual(len(a.searchGroups(name='Group', max_results=1)), 1)

        # test sorting the result
        self.assertEqual(a.searchGroups(name='Group', sort_by='name')[0]['id'],
                         '1')
Example #14
0
    def testGetGroupsForEntity(self):
        from tardis.tardis_portal.auth import AuthService
        s = MockSettings()
        s.GROUP_PROVIDERS = \
            ('tardis.tardis_portal.tests.test_authservice.MockGroupProvider',)
        a = AuthService(settings=s)
        a._manual_init()

        # check the correct group provider is registered
        self.assertEqual(len(a._group_providers), 1)

        self.assertEqual(len([g for g in a.getGroupsForEntity('user1')]), 2)
        self.assertEqual(len([g for g in a.getGroupsForEntity('Group 123')]),
                         1)