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
4da68a58
Commit
4da68a58
authored
Jan 05, 2011
by
Anthony Lenton
Browse files
Options
Browse Files
Download
Plain Diff
Merged in lp:~stuartmetcalfe/django-openid-auth/staff-assignment
parents
7069378a
95dbda13
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
70 additions
and
2 deletions
+70
-2
django_openid_auth/auth.py
+16
-0
django_openid_auth/tests/test_views.py
+54
-2
No files found.
django_openid_auth/auth.py
View file @
4da68a58
...
...
@@ -87,6 +87,7 @@ class OpenIDBackend:
openid_response
)
if
teams_response
:
self
.
update_groups_from_teams
(
user
,
teams_response
)
self
.
update_staff_status_from_teams
(
user
,
teams_response
)
return
user
...
...
@@ -219,3 +220,18 @@ class OpenIDBackend:
user
.
groups
.
remove
(
group
)
for
group
in
desired_groups
-
current_groups
:
user
.
groups
.
add
(
group
)
def
update_staff_status_from_teams
(
self
,
user
,
teams_response
):
if
not
hasattr
(
settings
,
'OPENID_LAUNCHPAD_STAFF_TEAMS'
):
return
staff_teams
=
getattr
(
settings
,
'OPENID_LAUNCHPAD_STAFF_TEAMS'
,
[])
user
.
is_staff
=
False
for
lp_team
in
teams_response
.
is_member
:
if
lp_team
in
staff_teams
:
user
.
is_staff
=
True
break
user
.
save
()
django_openid_auth/tests/test_views.py
View file @
4da68a58
...
...
@@ -462,11 +462,63 @@ class RelyingPartyTests(TestCase):
openid_request
=
self
.
provider
.
parseFormPost
(
response
.
content
)
openid_response
=
openid_request
.
answer
(
True
)
teams_request
=
teams
.
TeamsRequest
.
fromOpenIDRequest
(
openid_request
)
self
.
assertEqual
(
group1
in
user
.
groups
.
all
(),
False
)
self
.
assertEqual
(
group2
in
user
.
groups
.
all
(),
False
)
self
.
assertTrue
(
group3
not
in
user
.
groups
.
all
())
def
test_login_teams_staff_not_defined
(
self
):
delattr
(
settings
,
'OPENID_LAUNCHPAD_STAFF_TEAMS'
)
user
=
User
.
objects
.
create_user
(
'testuser'
,
'someone@example.com'
)
user
.
is_staff
=
True
user
.
save
()
self
.
assertTrue
(
user
.
is_staff
)
user
=
self
.
get_openid_authed_user_with_teams
(
user
,
'teamname,some-other-team'
)
self
.
assertTrue
(
user
.
is_staff
)
def
test_login_teams_staff_assignment
(
self
):
settings
.
OPENID_LAUNCHPAD_STAFF_TEAMS
=
(
'teamname'
,)
user
=
User
.
objects
.
create_user
(
'testuser'
,
'someone@example.com'
)
user
.
is_staff
=
False
user
.
save
()
self
.
assertFalse
(
user
.
is_staff
)
user
=
self
.
get_openid_authed_user_with_teams
(
user
,
'teamname,some-other-team'
)
self
.
assertTrue
(
user
.
is_staff
)
def
test_login_teams_staff_unassignment
(
self
):
settings
.
OPENID_LAUNCHPAD_STAFF_TEAMS
=
(
'different-teamname'
,)
user
=
User
.
objects
.
create_user
(
'testuser'
,
'someone@example.com'
)
user
.
is_staff
=
True
user
.
save
()
self
.
assertTrue
(
user
.
is_staff
)
user
=
self
.
get_openid_authed_user_with_teams
(
user
,
'teamname,some-other-team'
)
self
.
assertFalse
(
user
.
is_staff
)
def
get_openid_authed_user_with_teams
(
self
,
user
,
teams_str
):
useropenid
=
UserOpenID
(
user
=
user
,
claimed_id
=
'http://example.com/identity'
,
display_id
=
'http://example.com/identity'
)
useropenid
.
save
()
# Posting in an identity URL begins the authentication request:
response
=
self
.
client
.
post
(
'/openid/login/'
,
{
'openid_identifier'
:
'http://example.com/identity'
})
# Complete the request
openid_request
=
self
.
provider
.
parseFormPost
(
response
.
content
)
openid_response
=
openid_request
.
answer
(
True
)
teams_request
=
teams
.
TeamsRequest
.
fromOpenIDRequest
(
openid_request
)
teams_response
=
teams
.
TeamsResponse
.
extractResponse
(
teams_request
,
teams_str
)
openid_response
.
addExtension
(
teams_response
)
response
=
self
.
complete
(
openid_response
)
return
User
.
objects
.
get
(
username
=
user
.
username
)
class
HelperFunctionsTest
(
TestCase
):
def
test_sanitise_redirect_url
(
self
):
settings
.
ALLOWED_EXTERNAL_OPENID_REDIRECT_DOMAINS
=
[
...
...
@@ -492,6 +544,6 @@ class HelperFunctionsTest(TestCase):
self
.
assertEqual
(
url
,
sanitised
)
else
:
self
.
assertEqual
(
settings
.
LOGIN_REDIRECT_URL
,
sanitised
)
def
suite
():
return
unittest
.
TestLoader
()
.
loadTestsFromName
(
__name__
)
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