1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 00:00:00 +00:00

Merge pull request #1914 from haiwen/oauth-user

update get user info
This commit is contained in:
Daniel Pan
2017-11-21 12:32:13 +08:00
committed by GitHub

View File

@@ -11,6 +11,7 @@ from django.utils.translation import ugettext as _
from seahub import auth
from seahub.profile.models import Profile
from seahub.utils import is_valid_email
from seahub.base.accounts import User
import seahub.settings as settings
logger = logging.getLogger(__name__)
@@ -121,16 +122,16 @@ def oauth_callback(request):
for item, attr in ATTRIBUTE_MAP.items():
required, user_attr = attr
value = str(user_info_json.get(item, ''))
value = user_info_json.get(item, '')
if value:
# ccnet email
if user_attr == 'email':
user_info[user_attr] = value if is_valid_email(value) else \
'%s@%s' % (value, PROVIDER_DOMAIN)
user_info[user_attr] = value if is_valid_email(str(value)) else \
'%s@%s' % (str(value), PROVIDER_DOMAIN)
else:
user_info[user_attr] = value
if required and not value:
elif required:
error = True
return user_info, error
@@ -145,7 +146,10 @@ def oauth_callback(request):
# seahub authenticate user
email = user_info['email']
try:
user = auth.authenticate(remote_user=email)
except User.DoesNotExist:
user = None
if not user or not user.is_active:
logger.error('User %s not found or inactive.' % email)
@@ -172,10 +176,10 @@ def oauth_callback(request):
if name:
profile.nickname = name.strip()
profile.save()
if contact_email:
profile.contact_email = contact_email.strip()
profile.save()
# redirect user to home page