Skip to content

Commit

Permalink
Update auth.get_or_create_user():
Browse files Browse the repository at this point in the history
    - replace `str verificiation_type` with `bool reset_password`
    - update usage and test
  • Loading branch information
cslzchen committed Sep 20, 2016
1 parent c8bb69b commit e3a4137
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 10 deletions.
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
8 changes: 4 additions & 4 deletions framework/auth/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,13 @@ def register_unconfirmed(username, password, fullname, campaign=None):
return user


def get_or_create_user(fullname, address, verification_type='password', is_spam=False):
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 str verification_type: the type of verification_key_v2; if None, no verification is required
:param boolean reset_password: ask user to reset their password
:param bool is_spam: user flagged as potential spam
:return: tuple of (user, created)
"""
Expand All @@ -124,8 +124,8 @@ def get_or_create_user(fullname, address, verification_type='password', is_spam=
else:
password = str(uuid.uuid4())
user = User.create_confirmed(address, password, fullname)
if verification_type:
user.verification_key_v2 = generate_verification_key(verification_type=verification_type)
if password:
user.verification_key_v2 = generate_verification_key(verification_type='password')
if is_spam:
user.system_tags.append('is_spam')
return user, True
8 changes: 4 additions & 4 deletions tests/test_conferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,15 +69,15 @@ class TestConferenceUtils(OsfTestCase):

def test_get_or_create_user_exists(self):
user = UserFactory()
fetched, created = get_or_create_user(user.fullname, user.username, verification_type='password', is_spam=True)
fetched, created = get_or_create_user(user.fullname, user.username, is_spam=True)
assert_false(created)
assert_equal(user._id, fetched._id)
assert_false('is_spam' in fetched.system_tags)

def test_get_or_create_user_not_exists(self):
fullname = 'Roger Taylor'
username = 'roger@queen.com'
fetched, created = get_or_create_user(fullname, username, verification_type='password', is_spam=False)
fetched, created = get_or_create_user(fullname, username, is_spam=False)
assert_true(created)
assert_equal(fetched.fullname, fullname)
assert_equal(fetched.username, username)
Expand All @@ -86,7 +86,7 @@ def test_get_or_create_user_not_exists(self):
def test_get_or_create_user_is_spam(self):
fullname = 'John Deacon'
username = 'deacon@queen.com'
fetched, created = get_or_create_user(fullname, username, verification_type='password', is_spam=True)
fetched, created = get_or_create_user(fullname, username, is_spam=True)
assert_true(created)
assert_equal(fetched.fullname, fullname)
assert_equal(fetched.username, username)
Expand Down Expand Up @@ -118,7 +118,7 @@ def test_get_or_create_user_with_blacklisted_domain(self):
fullname = 'Kanye West'
username = 'kanye@mailinator.com'
with assert_raises(ValidationError) as e:
get_or_create_user(fullname, username, verification_type='password', is_spam=True)
get_or_create_user(fullname, username, is_spam=True)
assert_equal(e.exception.message, 'Invalid Email')


Expand Down
1 change: 0 additions & 1 deletion website/conferences/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ def add_poster_by_email(conference, message):
user, user_created = get_or_create_user(
message.sender_display,
message.sender_email,
verification_type='password',
is_spam=message.is_spam,
)
if user_created:
Expand Down

0 comments on commit e3a4137

Please sign in to comment.