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
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
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)
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
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)
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')
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')