-def get_or_create_user(email, realname='', first_name='', last_name='', affiliation='', level=0, provider='local', password=''):
- """Find or register a user into the internal database
- and issue a token for subsequent requests.
- """
- user, created = AstakosUser.objects.get_or_create(email=email,
- defaults={
- 'password':password,
- 'affiliation':affiliation,
- 'level':level,
- 'invitations':INVITATIONS_PER_LEVEL.get(level, 0),
- 'provider':provider,
- 'realname':realname,
- 'first_name':first_name,
- 'last_name':last_name
- })
- if created:
- user.renew_token()
- user.save()
- logger.info('Created user %s', user)
-
- return user
-