Commit 8849b021 by James Henstridge

Add teams extension to tree, rather than requiring patched

python-openid.
parent 50a49131
check: check:
PYTHONPATH=$(shell pwd) python example_consumer/manage.py test PYTHONPATH=$(shell pwd) python example_consumer/manage.py test \
--verbosity=2 django_openid_auth
.PHONY: check .PHONY: check
...@@ -6,11 +6,8 @@ from django.conf import settings ...@@ -6,11 +6,8 @@ from django.conf import settings
from django.contrib.auth.models import User, Group from django.contrib.auth.models import User, Group
from openid.consumer.consumer import SUCCESS from openid.consumer.consumer import SUCCESS
from openid.extensions import sreg from openid.extensions import sreg
try:
from openid.extensions import teams
except ImportError:
teams = None
from django_openid_auth import teams
from django_openid_auth.models import UserOpenID from django_openid_auth.models import UserOpenID
...@@ -60,12 +57,11 @@ class OpenIDBackend: ...@@ -60,12 +57,11 @@ 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 teams is not None: if getattr(settings, 'OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS', False):
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
......
...@@ -13,11 +13,7 @@ from openid.oidutil import importElementTree ...@@ -13,11 +13,7 @@ from openid.oidutil import importElementTree
from openid.server.server import BROWSER_REQUEST_MODES, Server from openid.server.server import BROWSER_REQUEST_MODES, Server
from openid.store.memstore import MemoryStore from openid.store.memstore import MemoryStore
try: from django_openid_auth import teams
from openid.extensions import teams
except ImportError:
teams = None
from django_openid_auth.models import UserOpenID from django_openid_auth.models import UserOpenID
...@@ -267,8 +263,6 @@ class RelyingPartyTests(TestCase): ...@@ -267,8 +263,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):
if teams is None:
raise AssertionError, "teams extension is missing!"
settings.OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS = True 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'}
...@@ -300,7 +294,7 @@ class RelyingPartyTests(TestCase): ...@@ -300,7 +294,7 @@ class RelyingPartyTests(TestCase):
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')
# And they are now logged in as testuser # And they are now logged in as testuser
response = self.client.get('/getuser') response = self.client.get('/getuser')
self.assertEquals(response.content, 'testuser') self.assertEquals(response.content, 'testuser')
...@@ -309,8 +303,6 @@ class RelyingPartyTests(TestCase): ...@@ -309,8 +303,6 @@ class RelyingPartyTests(TestCase):
user = User.objects.get(username='testuser') user = User.objects.get(username='testuser')
self.assertTrue(group in user.groups.all()) self.assertTrue(group in user.groups.all())
self.assertTrue(ogroup not in user.groups.all()) self.assertTrue(ogroup not in user.groups.all())
def suite(): def suite():
......
...@@ -15,12 +15,7 @@ from openid.consumer.consumer import ( ...@@ -15,12 +15,7 @@ from openid.consumer.consumer import (
from openid.consumer.discover import DiscoveryFailure from openid.consumer.discover import DiscoveryFailure
from openid.extensions import sreg from openid.extensions import sreg
try: from django_openid_auth import teams
from openid.extensions import teams
except ImportError:
teams = None
from django_openid_auth.forms import OpenIDLoginForm from django_openid_auth.forms import OpenIDLoginForm
from django_openid_auth.store import DjangoOpenIDStore from django_openid_auth.store import DjangoOpenIDStore
...@@ -115,11 +110,10 @@ def login_begin(request, template_name='openid/login.html', ...@@ -115,11 +110,10 @@ def login_begin(request, template_name='openid/login.html',
openid_request.addExtension( openid_request.addExtension(
sreg.SRegRequest(optional=['email', 'fullname', 'nickname'])) sreg.SRegRequest(optional=['email', 'fullname', 'nickname']))
if teams is not None: # Request team info
# Request team info launchpad_teams = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING',
launchpad_teams = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING', {})
{}) openid_request.addExtension(teams.TeamsRequest(launchpad_teams.keys()))
openid_request.addExtension(teams.TeamsRequest(launchpad_teams.keys()))
# Construct the request completion URL, including the page we # Construct the request completion URL, including the page we
# should redirect to. # should redirect to.
......
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