Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
django-openid-auth
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
django-openid-auth
Commits
40a58028
Commit
40a58028
authored
Nov 21, 2008
by
john.lenton@canonical.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
made teams optional
parent
ebca5288
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
19 deletions
+35
-19
django_openid_auth/auth.py
+11
-7
django_openid_auth/tests/test_views.py
+14
-8
django_openid_auth/views.py
+10
-4
No files found.
django_openid_auth/auth.py
View file @
40a58028
...
@@ -6,7 +6,10 @@ from django.conf import settings
...
@@ -6,7 +6,10 @@ 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
from
openid.extensions
import
teams
try
:
from
openid.extensions
import
teams
except
ImportError
:
teams
=
None
from
django_openid_auth.models
import
UserOpenID
from
django_openid_auth.models
import
UserOpenID
...
@@ -57,11 +60,12 @@ class OpenIDBackend:
...
@@ -57,11 +60,12 @@ 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_TEAMS'
,
False
):
if
teams
is
not
None
:
teams_response
=
teams
.
TeamsResponse
.
fromSuccessResponse
(
if
getattr
(
settings
,
'OPENID_UPDATE_GROUPS_FROM_LAUNCHPAD_TEAMS'
,
False
):
openid_response
)
teams_response
=
teams
.
TeamsResponse
.
fromSuccessResponse
(
if
teams_response
:
openid_response
)
self
.
update_groups_from_teams
(
user
,
teams_response
)
if
teams_response
:
self
.
update_groups_from_teams
(
user
,
teams_response
)
return
user
return
user
...
@@ -131,7 +135,7 @@ class OpenIDBackend:
...
@@ -131,7 +135,7 @@ class OpenIDBackend:
user
.
save
()
user
.
save
()
def
update_groups_from_teams
(
self
,
user
,
teams_response
):
def
update_groups_from_teams
(
self
,
user
,
teams_response
):
teams_mapping
=
settings
.
OPENID_LAUNCHPAD_TEAMS_MAPPING
teams_mapping
=
getattr
(
settings
,
'OPENID_LAUNCHPAD_TEAMS_MAPPING'
,
{})
resp_groups
=
set
(
Group
.
objects
.
get
(
name
=
teams_mapping
[
i
])
resp_groups
=
set
(
Group
.
objects
.
get
(
name
=
teams_mapping
[
i
])
for
i
in
teams_response
.
is_member
)
for
i
in
teams_response
.
is_member
)
user_groups
=
set
(
user_groups
=
set
(
...
...
django_openid_auth/tests/test_views.py
View file @
40a58028
...
@@ -7,13 +7,17 @@ from django.conf import settings
...
@@ -7,13 +7,17 @@ from django.conf import settings
from
django.contrib.auth.models
import
User
,
Group
from
django.contrib.auth.models
import
User
,
Group
from
django.test
import
TestCase
from
django.test
import
TestCase
from
openid.extensions.sreg
import
SRegRequest
,
SRegResponse
from
openid.extensions.sreg
import
SRegRequest
,
SRegResponse
from
openid.extensions.teams
import
TeamsRequest
,
TeamsResponse
from
openid.fetchers
import
(
from
openid.fetchers
import
(
HTTPFetcher
,
HTTPFetchingError
,
HTTPResponse
,
setDefaultFetcher
)
HTTPFetcher
,
HTTPFetchingError
,
HTTPResponse
,
setDefaultFetcher
)
from
openid.oidutil
import
importElementTree
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
openid.extensions
import
teams
except
ImportError
:
teams
=
None
from
django_openid_auth.models
import
UserOpenID
from
django_openid_auth.models
import
UserOpenID
...
@@ -100,20 +104,20 @@ class RelyingPartyTests(TestCase):
...
@@ -100,20 +104,20 @@ 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_TEAMS'
,
False
)
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_TEAMS
=
False
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_TEAMS
=
self
.
old_update_groups
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 +267,9 @@ class RelyingPartyTests(TestCase):
...
@@ -263,7 +267,9 @@ 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_TEAMS
=
True
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'
,
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'
)
...
@@ -287,10 +293,10 @@ class RelyingPartyTests(TestCase):
...
@@ -287,10 +293,10 @@ class RelyingPartyTests(TestCase):
# Complete the request
# Complete the request
openid_request
=
self
.
provider
.
parseFormPost
(
response
.
content
)
openid_request
=
self
.
provider
.
parseFormPost
(
response
.
content
)
teams_request
=
TeamsRequest
.
fromOpenIDRequest
(
openid_request
)
openid_response
=
openid_request
.
answer
(
True
)
openid_response
=
openid_request
.
answer
(
True
)
teams_response
=
TeamsResponse
.
extractResponse
(
teams_request
,
teams_request
=
teams
.
TeamsRequest
.
fromOpenIDRequest
(
openid_request
)
'teamname'
)
teams_response
=
teams
.
TeamsResponse
.
extractResponse
(
teams_request
,
'teamname'
)
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'
)
...
...
django_openid_auth/views.py
View file @
40a58028
...
@@ -14,7 +14,11 @@ from openid.consumer.consumer import (
...
@@ -14,7 +14,11 @@ from openid.consumer.consumer import (
Consumer
,
SUCCESS
,
CANCEL
,
FAILURE
)
Consumer
,
SUCCESS
,
CANCEL
,
FAILURE
)
from
openid.consumer.discover
import
DiscoveryFailure
from
openid.consumer.discover
import
DiscoveryFailure
from
openid.extensions
import
sreg
from
openid.extensions
import
sreg
from
openid.extensions
import
teams
try
:
from
openid.extensions
import
teams
except
ImportError
:
teams
=
None
from
django_openid_auth.forms
import
OpenIDLoginForm
from
django_openid_auth.forms
import
OpenIDLoginForm
...
@@ -111,9 +115,11 @@ def login_begin(request, template_name='openid/login.html',
...
@@ -111,9 +115,11 @@ 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'
]))
# Request team info
if
teams
is
not
None
:
launchpad_teams
=
getattr
(
settings
,
'OPENID_LAUNCHPAD_TEAMS_MAPPING'
,
{})
# Request team info
openid_request
.
addExtension
(
teams
.
TeamsRequest
(
launchpad_teams
.
keys
()))
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
# Construct the request completion URL, including the page we
# should redirect to.
# should redirect to.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment