mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-09 15:10:27 +00:00
Updated the OAuth login handlers to utilize uniform user naming variables.
Updated the GitHub login process to split the user's full name based on spaces so that first and last name are filled in on PDA profile.
This commit is contained in:
parent
a46ab760fd
commit
9168dd99e0
@ -189,17 +189,25 @@ def login():
|
|||||||
if 'github_token' in session:
|
if 'github_token' in session:
|
||||||
me = json.loads(github.get('user').text)
|
me = json.loads(github.get('user').text)
|
||||||
github_username = me['login']
|
github_username = me['login']
|
||||||
github_name = me['name']
|
github_first_name = me['name']
|
||||||
|
github_last_name = ''
|
||||||
github_email = me['email']
|
github_email = me['email']
|
||||||
|
|
||||||
|
# If the user's full name from GitHub contains at least two words, use the first word as the first name and
|
||||||
|
# the rest as the last name.
|
||||||
|
github_name_parts = github_first_name.split(' ')
|
||||||
|
if len(github_name_parts) > 1:
|
||||||
|
github_first_name = github_name_parts[0]
|
||||||
|
github_last_name = ' '.join(github_name_parts[1:])
|
||||||
|
|
||||||
user = User.query.filter_by(username=github_username).first()
|
user = User.query.filter_by(username=github_username).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
user = User.query.filter_by(email=github_email).first()
|
user = User.query.filter_by(email=github_email).first()
|
||||||
if not user:
|
if not user:
|
||||||
user = User(username=github_username,
|
user = User(username=github_username,
|
||||||
plain_text_password=None,
|
plain_text_password=None,
|
||||||
firstname=github_name,
|
firstname=github_first_name,
|
||||||
lastname='',
|
lastname=github_last_name,
|
||||||
email=github_email)
|
email=github_email)
|
||||||
|
|
||||||
result = user.create_local_user()
|
result = user.create_local_user()
|
||||||
@ -227,8 +235,8 @@ def login():
|
|||||||
mygroups = []
|
mygroups = []
|
||||||
|
|
||||||
azure_username = me["userPrincipalName"]
|
azure_username = me["userPrincipalName"]
|
||||||
azure_givenname = me["givenName"]
|
azure_first_name = me["givenName"]
|
||||||
azure_familyname = me["surname"]
|
azure_last_name = me["surname"]
|
||||||
if "mail" in me:
|
if "mail" in me:
|
||||||
azure_email = me["mail"]
|
azure_email = me["mail"]
|
||||||
else:
|
else:
|
||||||
@ -244,8 +252,8 @@ def login():
|
|||||||
if not user:
|
if not user:
|
||||||
user = User(username=azure_username,
|
user = User(username=azure_username,
|
||||||
plain_text_password=None,
|
plain_text_password=None,
|
||||||
firstname=azure_givenname,
|
firstname=azure_first_name,
|
||||||
lastname=azure_familyname,
|
lastname=azure_last_name,
|
||||||
email=azure_email)
|
email=azure_email)
|
||||||
|
|
||||||
result = user.create_local_user()
|
result = user.create_local_user()
|
||||||
@ -386,21 +394,21 @@ def login():
|
|||||||
if 'oidc_token' in session:
|
if 'oidc_token' in session:
|
||||||
me = json.loads(oidc.get('userinfo').text)
|
me = json.loads(oidc.get('userinfo').text)
|
||||||
oidc_username = me[Setting().get('oidc_oauth_username')]
|
oidc_username = me[Setting().get('oidc_oauth_username')]
|
||||||
oidc_givenname = me[Setting().get('oidc_oauth_firstname')]
|
oidc_first_name = me[Setting().get('oidc_oauth_firstname')]
|
||||||
oidc_familyname = me[Setting().get('oidc_oauth_last_name')]
|
oidc_last_name = me[Setting().get('oidc_oauth_last_name')]
|
||||||
oidc_email = me[Setting().get('oidc_oauth_email')]
|
oidc_email = me[Setting().get('oidc_oauth_email')]
|
||||||
|
|
||||||
user = User.query.filter_by(username=oidc_username).first()
|
user = User.query.filter_by(username=oidc_username).first()
|
||||||
if not user:
|
if not user:
|
||||||
user = User(username=oidc_username,
|
user = User(username=oidc_username,
|
||||||
plain_text_password=None,
|
plain_text_password=None,
|
||||||
firstname=oidc_givenname,
|
firstname=oidc_first_name,
|
||||||
lastname=oidc_familyname,
|
lastname=oidc_last_name,
|
||||||
email=oidc_email)
|
email=oidc_email)
|
||||||
result = user.create_local_user()
|
result = user.create_local_user()
|
||||||
else:
|
else:
|
||||||
user.firstname = oidc_givenname
|
user.firstname = oidc_first_name
|
||||||
user.lastname = oidc_familyname
|
user.lastname = oidc_last_name
|
||||||
user.email = oidc_email
|
user.email = oidc_email
|
||||||
user.plain_text_password = None
|
user.plain_text_password = None
|
||||||
result = user.update_local_user()
|
result = user.update_local_user()
|
||||||
|
Loading…
Reference in New Issue
Block a user