Skip to content

Commit

Permalink
Merge pull request #5964 from cslzchen/feature/verification-key
Browse files Browse the repository at this point in the history
[Feature] Normalize OSF Verification Key [#OSF-6560]
  • Loading branch information
brianjgeiger committed Sep 28, 2016
2 parents c8d465a + 10419b7 commit 53419a5
Show file tree
Hide file tree
Showing 18 changed files with 452 additions and 319 deletions.
2 changes: 1 addition & 1 deletion api/base/authentication/backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
class ODMBackend(object):

def authenticate(self, username=None, password=None):
return get_user(username=username, password=password) or None
return get_user(email=username, password=password) or None

def get_user(self, user_id):
return User.load(user_id)
2 changes: 1 addition & 1 deletion api/institutions/authentication.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def authenticate(self, request):
username = provider['user']['username']
fullname = provider['user']['fullname']

user, created = get_or_create_user(fullname, username)
user, created = get_or_create_user(fullname, username, reset_password=False)

if created:
user.given_name = provider['user'].get('givenName')
Expand Down
17 changes: 10 additions & 7 deletions framework/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,21 +108,24 @@ def register_unconfirmed(username, password, fullname, campaign=None):
return user


def get_or_create_user(fullname, address, is_spam=False):
"""Get or create user by email address.
def get_or_create_user(fullname, address, reset_password=True, is_spam=False):
"""
Get or create user by fullname and email address.
:param str fullname: User full name
:param str address: User email address
:param bool is_spam: User flagged as potential spam
:return: Tuple of (user, created)
:param str fullname: user full name
:param str address: user email address
:param boolean reset_password: ask user to reset their password
:param bool is_spam: user flagged as potential spam
:return: tuple of (user, created)
"""
user = get_user(email=address)
if user:
return user, False
else:
password = str(uuid.uuid4())
user = User.create_confirmed(address, password, fullname)
user.verification_key = generate_verification_key()
if password:
user.verification_key_v2 = generate_verification_key(verification_type='password')
if is_spam:
user.system_tags.append('is_spam')
return user, True
Loading

0 comments on commit 53419a5

Please sign in to comment.