Commit c23f44b6 by Carlos Andrés Rocha

Merge pull request #902 from MITx/hotfix/rocha/openid-sreg-return-only-username

Return only username on OpenID provider requests.
parents 09888108 f495f219
...@@ -293,6 +293,8 @@ def add_openid_simple_registration(request, response, data): ...@@ -293,6 +293,8 @@ def add_openid_simple_registration(request, response, data):
sreg_data['email'] = data['email'] sreg_data['email'] = data['email']
elif field == 'fullname' and 'fullname' in data: elif field == 'fullname' and 'fullname' in data:
sreg_data['fullname'] = data['fullname'] sreg_data['fullname'] = data['fullname']
elif field == 'nickname' and 'nickname' in data:
sreg_data['nickname'] = data['nickname']
# construct sreg response # construct sreg response
sreg_response = sreg.SRegResponse.extractResponse(sreg_request, sreg_response = sreg.SRegResponse.extractResponse(sreg_request,
...@@ -486,13 +488,22 @@ def provider_login(request): ...@@ -486,13 +488,22 @@ def provider_login(request):
url = endpoint + urlquote(user.username) url = endpoint + urlquote(user.username)
response = openid_request.answer(True, None, url) response = openid_request.answer(True, None, url)
return provider_respond(server, # TODO: for CS50 we are forcibly returning the username
openid_request, # instead of fullname. In the OpenID simple registration
response, # extension, we don't have to return any fields we don't
{ # want to, even if they were marked as required by the
'fullname': profile.name, # Consumer. The behavior of what to do when there are
'email': user.email # missing fields is up to the Consumer. The proper change
}) # should only return the username, however this will likely
# break the CS50 client. Temporarily we will be returning
# username filling in for fullname in addition to username
# as sreg nickname.
results = {
'nickname': user.username,
'email': user.email,
'fullname': user.username
}
return provider_respond(server, openid_request, response, results)
request.session['openid_error'] = True request.session['openid_error'] = True
msg = "Login failed - Account not active for user {0}".format(username) msg = "Login failed - Account not active for user {0}".format(username)
......
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