Fixed name resolution in OAuth token
Some users don't actually have a fullName in launchpad. Others only have a single word. Some have many words. This adds a bit of handling to make those names behave nicely, though ultimately I think we should get rid of first_name and last_name and just use full_name. Change-Id: I64dceaaa87781f928b3a4fbf3a15de4f74f994e0
This commit is contained in:
parent
3288f26c19
commit
3b7d01c7b6
|
@ -101,9 +101,18 @@ class SkeletonValidator(RequestValidator):
|
||||||
openid = request._params["openid.claimed_id"]
|
openid = request._params["openid.claimed_id"]
|
||||||
email = request._params["openid.sreg.email"]
|
email = request._params["openid.sreg.email"]
|
||||||
fullname = request._params["openid.sreg.fullname"]
|
fullname = request._params["openid.sreg.fullname"]
|
||||||
|
username = request._params["openid.sreg.nickname"]
|
||||||
|
|
||||||
first_name = fullname.split()[0]
|
name_split = fullname.split()
|
||||||
last_name = fullname.split()[1]
|
if len(name_split) > 0:
|
||||||
|
first_name = name_split.pop(0)
|
||||||
|
else:
|
||||||
|
first_name = fullname
|
||||||
|
|
||||||
|
if len(name_split) > 0:
|
||||||
|
last_name = " ".join(name_split)
|
||||||
|
else:
|
||||||
|
last_name = ""
|
||||||
|
|
||||||
user = db_api.user_get_by_openid(openid)
|
user = db_api.user_get_by_openid(openid)
|
||||||
|
|
||||||
|
@ -111,10 +120,12 @@ class SkeletonValidator(RequestValidator):
|
||||||
user = db_api.user_create({"openid": openid,
|
user = db_api.user_create({"openid": openid,
|
||||||
"first_name": first_name,
|
"first_name": first_name,
|
||||||
"last_name": last_name,
|
"last_name": last_name,
|
||||||
|
"username": username,
|
||||||
"email": email})
|
"email": email})
|
||||||
else:
|
else:
|
||||||
user = db_api.user_update(user.id, {"first_name": first_name,
|
user = db_api.user_update(user.id, {"first_name": first_name,
|
||||||
"last_name": last_name,
|
"last_name": last_name,
|
||||||
|
"username": username,
|
||||||
"email": email})
|
"email": email})
|
||||||
|
|
||||||
self.token_storage.save_authorization_code(code, user_id=user.id)
|
self.token_storage.save_authorization_code(code, user_id=user.id)
|
||||||
|
|
|
@ -66,7 +66,7 @@ class OpenIdClient(object):
|
||||||
"openid.return_to": return_to_url,
|
"openid.return_to": return_to_url,
|
||||||
|
|
||||||
"openid.ns.sreg": "http://openid.net/sreg/1.0",
|
"openid.ns.sreg": "http://openid.net/sreg/1.0",
|
||||||
"openid.sreg.required": "fullname,email",
|
"openid.sreg.required": "fullname,email,nickname",
|
||||||
|
|
||||||
"openid.ns.ext2": "http://openid.net/srv/ax/1.0",
|
"openid.ns.ext2": "http://openid.net/srv/ax/1.0",
|
||||||
"openid.ext2.mode": "fetch_request",
|
"openid.ext2.mode": "fetch_request",
|
||||||
|
|
Loading…
Reference in New Issue