Commit 8c2bcce1 by James Henstridge

Get rid of the OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS option.

parent 8849b021
...@@ -57,11 +57,10 @@ class OpenIDBackend: ...@@ -57,11 +57,10 @@ class OpenIDBackend:
if sreg_response: if sreg_response:
self.update_user_details_from_sreg(user, sreg_response) self.update_user_details_from_sreg(user, sreg_response)
if getattr(settings, 'OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS', False): teams_response = teams.TeamsResponse.fromSuccessResponse(
teams_response = teams.TeamsResponse.fromSuccessResponse( openid_response)
openid_response) if teams_response:
if teams_response: self.update_groups_from_teams(user, teams_response)
self.update_groups_from_teams(user, teams_response)
return user return user
...@@ -132,16 +131,16 @@ class OpenIDBackend: ...@@ -132,16 +131,16 @@ class OpenIDBackend:
def update_groups_from_teams(self, user, teams_response): def update_groups_from_teams(self, user, teams_response):
teams_mapping = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING', {}) teams_mapping = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING', {})
resp_groups = set(Group.objects.get(name=teams_mapping[i]) if len(teams_mapping) == 0:
for i in teams_response.is_member) return
user_groups = set(
i for i in user.groups.filter(name__in=teams_mapping.values())) current_groups = set(user.groups.filter(
name__in=teams_mapping.values()))
# the groups the user is in that aren't reported by openid desired_groups = set(Group.objects.filter(
# should be removed name__in=[teams_mapping[lp_team]
for group in user_groups - resp_groups: for lp_team in teams_response.is_member
if lp_team in teams_mapping]))
for group in current_groups - desired_groups:
user.groups.remove(group) user.groups.remove(group)
# and viceversa for group in desired_groups - current_groups:
for group in resp_groups - user_groups:
user.groups.add(group) user.groups.add(group)
user.save()
...@@ -100,20 +100,17 @@ class RelyingPartyTests(TestCase): ...@@ -100,20 +100,17 @@ class RelyingPartyTests(TestCase):
self.old_create_users = getattr(settings, 'OPENID_CREATE_USERS', False) self.old_create_users = getattr(settings, 'OPENID_CREATE_USERS', False)
self.old_update_details = getattr(settings, 'OPENID_UPDATE_DETAILS_FROM_SREG', False) self.old_update_details = getattr(settings, 'OPENID_UPDATE_DETAILS_FROM_SREG', False)
self.old_sso_server_url = getattr(settings, 'OPENID_SSO_SERVER_URL') self.old_sso_server_url = getattr(settings, 'OPENID_SSO_SERVER_URL')
self.old_update_groups = getattr(settings, 'OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS', False)
self.old_teams_map = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING', {}) self.old_teams_map = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING', {})
settings.OPENID_CREATE_USERS = False settings.OPENID_CREATE_USERS = False
settings.OPENID_UPDATE_DETAILS_FROM_SREG = False settings.OPENID_UPDATE_DETAILS_FROM_SREG = False
settings.OPENID_SSO_SERVER_URL = None settings.OPENID_SSO_SERVER_URL = None
settings.OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS = False
settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = {} settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = {}
def tearDown(self): def tearDown(self):
settings.OPENID_CREATE_USERS = self.old_create_users settings.OPENID_CREATE_USERS = self.old_create_users
settings.OPENID_UPDATE_DETAILS_FROM_SREG = self.old_update_details settings.OPENID_UPDATE_DETAILS_FROM_SREG = self.old_update_details
settings.OPENID_SSO_SERVER_URL = self.old_sso_server_url settings.OPENID_SSO_SERVER_URL = self.old_sso_server_url
settings.OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS = self.old_update_groups
settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = self.old_teams_map settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = self.old_teams_map
setDefaultFetcher(None) setDefaultFetcher(None)
...@@ -263,7 +260,6 @@ class RelyingPartyTests(TestCase): ...@@ -263,7 +260,6 @@ class RelyingPartyTests(TestCase):
self.assertEquals(user.email, 'foo@example.com') self.assertEquals(user.email, 'foo@example.com')
def test_login_teams(self): def test_login_teams(self):
settings.OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS = True
settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = {'teamname': 'groupname', settings.OPENID_LAUNCHPAD_TEAMS_MAPPING = {'teamname': 'groupname',
'otherteam': 'othergroup'} 'otherteam': 'othergroup'}
user = User.objects.create_user('testuser', 'someone@example.com') user = User.objects.create_user('testuser', 'someone@example.com')
...@@ -289,8 +285,8 @@ class RelyingPartyTests(TestCase): ...@@ -289,8 +285,8 @@ class RelyingPartyTests(TestCase):
openid_request = self.provider.parseFormPost(response.content) openid_request = self.provider.parseFormPost(response.content)
openid_response = openid_request.answer(True) openid_response = openid_request.answer(True)
teams_request = teams.TeamsRequest.fromOpenIDRequest(openid_request) teams_request = teams.TeamsRequest.fromOpenIDRequest(openid_request)
teams_response = teams.TeamsResponse.extractResponse(teams_request, teams_response = teams.TeamsResponse.extractResponse(
'teamname') teams_request, 'teamname,some-other-team')
openid_response.addExtension(teams_response) openid_response.addExtension(teams_response)
response = self.complete(openid_response) response = self.complete(openid_response)
self.assertRedirects(response, 'http://testserver/getuser') self.assertRedirects(response, 'http://testserver/getuser')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment