Commit 8849b021 by James Henstridge

Add teams extension to tree, rather than requiring patched

python-openid.
parent 50a49131
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
......@@ -6,11 +6,8 @@ from django.conf import settings
from django.contrib.auth.models import User, Group
from openid.consumer.consumer import SUCCESS
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
......@@ -60,12 +57,11 @@ class OpenIDBackend:
if 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):
teams_response = teams.TeamsResponse.fromSuccessResponse(
openid_response)
if teams_response:
self.update_groups_from_teams(user, teams_response)
if getattr(settings, 'OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS', False):
teams_response = teams.TeamsResponse.fromSuccessResponse(
openid_response)
if teams_response:
self.update_groups_from_teams(user, teams_response)
return user
......
......@@ -13,11 +13,7 @@ from openid.oidutil import importElementTree
from openid.server.server import BROWSER_REQUEST_MODES, Server
from openid.store.memstore import MemoryStore
try:
from openid.extensions import teams
except ImportError:
teams = None
from django_openid_auth import teams
from django_openid_auth.models import UserOpenID
......@@ -267,8 +263,6 @@ class RelyingPartyTests(TestCase):
self.assertEquals(user.email, 'foo@example.com')
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_LAUNCHPAD_TEAMS_MAPPING = {'teamname': 'groupname',
'otherteam': 'othergroup'}
......@@ -300,7 +294,7 @@ class RelyingPartyTests(TestCase):
openid_response.addExtension(teams_response)
response = self.complete(openid_response)
self.assertRedirects(response, 'http://testserver/getuser')
# And they are now logged in as testuser
response = self.client.get('/getuser')
self.assertEquals(response.content, 'testuser')
......@@ -309,8 +303,6 @@ class RelyingPartyTests(TestCase):
user = User.objects.get(username='testuser')
self.assertTrue(group in user.groups.all())
self.assertTrue(ogroup not in user.groups.all())
def suite():
......
......@@ -15,12 +15,7 @@ from openid.consumer.consumer import (
from openid.consumer.discover import DiscoveryFailure
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.forms import OpenIDLoginForm
from django_openid_auth.store import DjangoOpenIDStore
......@@ -115,11 +110,10 @@ def login_begin(request, template_name='openid/login.html',
openid_request.addExtension(
sreg.SRegRequest(optional=['email', 'fullname', 'nickname']))
if teams is not None:
# Request team info
launchpad_teams = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING',
{})
openid_request.addExtension(teams.TeamsRequest(launchpad_teams.keys()))
# Request team info
launchpad_teams = getattr(settings, 'OPENID_LAUNCHPAD_TEAMS_MAPPING',
{})
openid_request.addExtension(teams.TeamsRequest(launchpad_teams.keys()))
# Construct the request completion URL, including the page we
# 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