Merge pull request #3842 from jumpserver/dev

Dev
pull/3882/head
BaiJiangJie 2020-03-28 21:36:54 +08:00 committed by GitHub
commit 52c6244b2b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -19,7 +19,7 @@ JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向
<table> <table>
<tr> <tr>
<td rowspan="7">身份认证<br>Authentication</td> <td rowspan="8">身份认证<br>Authentication</td>
<td rowspan="5">登录认证</td> <td rowspan="5">登录认证</td>
<td>资源统一登录与认证</td> <td>资源统一登录与认证</td>
</tr> </tr>

View File

@ -5,6 +5,7 @@ from django.db import transaction
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from keycloak.realm import KeycloakRealm from keycloak.realm import KeycloakRealm
from keycloak.keycloak_openid import KeycloakOpenID from keycloak.keycloak_openid import KeycloakOpenID
from users.utils import construct_user_email
from .signals import post_create_or_update_openid_user from .signals import post_create_or_update_openid_user
from .decorator import ssl_verification from .decorator import ssl_verification
@ -155,13 +156,17 @@ class Client(object):
""" """
userinfo = self.get_userinfo(token=token_response['access_token']) userinfo = self.get_userinfo(token=token_response['access_token'])
with transaction.atomic(): with transaction.atomic():
name = userinfo.get('name', '')
username = userinfo.get('preferred_username', ''),
email = userinfo.get('email', '')
email = construct_user_email(username, email)
user, created = get_user_model().objects.update_or_create( user, created = get_user_model().objects.update_or_create(
username=userinfo.get('preferred_username', ''), username=username,
defaults={ defaults={
'email': userinfo.get('email', ''), 'name': name, 'email': email,
'first_name': userinfo.get('given_name', ''), 'first_name': userinfo.get('given_name', ''),
'last_name': userinfo.get('family_name', ''), 'last_name': userinfo.get('family_name', ''),
'name': userinfo.get('name', '')
} }
) )
oidt_profile = OpenIDTokenProfile( oidt_profile = OpenIDTokenProfile(