Skip to content
Snippets Groups Projects
Commit 62235959 authored by jan.bednarik's avatar jan.bednarik
Browse files

Add name collision ID to User model.

parent cd721a50
No related branches found
No related tags found
No related merge requests found
# Generated by Django 2.0.2 on 2018-02-20 20:28
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('core', '0009_auto_20180217_1850'),
]
operations = [
migrations.AddField(
model_name='user',
name='name_collision_id',
field=models.IntegerField(default=0),
),
]
...@@ -13,6 +13,15 @@ class User(AbstractUser): ...@@ -13,6 +13,15 @@ class User(AbstractUser):
openid_uid = models.CharField(max_length=255, null=True) openid_uid = models.CharField(max_length=255, null=True)
extra = JSONField(null=True, blank=True) extra = JSONField(null=True, blank=True)
is_author = models.BooleanField(default=False) is_author = models.BooleanField(default=False)
name_collision_id = models.IntegerField(default=0)
def save(self, *args, **kwargs):
# deal with first name and last name collisions
collisions = User.objects.filter(first_name=self.first_name, last_name=self.last_name)\
.order_by('-name_collision_id')[:1]
if len(collisions) > 0:
self.name_collision_id = collisions[0].name_collision_id + 1
super().save(*args, **kwargs)
class OpenIdClient(models.Model): class OpenIdClient(models.Model):
......
...@@ -74,3 +74,19 @@ def test_login_attempt__default_expiration(): ...@@ -74,3 +74,19 @@ def test_login_attempt__default_expiration():
attempt = LoginAttempt.objects.create(openid_client=client, state='foo', attempt = LoginAttempt.objects.create(openid_client=client, state='foo',
app_redirect_uri='http://openlobby/app') app_redirect_uri='http://openlobby/app')
assert attempt.expiration == 10000 + settings.LOGIN_ATTEMPT_EXPIRATION assert attempt.expiration == 10000 + settings.LOGIN_ATTEMPT_EXPIRATION
def test_user__no_name_collision():
User.objects.create(username='a', first_name='Ryan', last_name='Gosling')
User.objects.create(username='b', first_name='Burt', last_name='Reynolds')
user = User.objects.create(username='c', first_name='Ryan', last_name='Reynolds')
assert user.name_collision_id == 0
def test_user__name_collision():
u1 = User.objects.create(username='a', first_name='Ryan', last_name='Gosling')
u2 = User.objects.create(username='b', first_name='Ryan', last_name='Gosling')
u3 = User.objects.create(username='c', first_name='Ryan', last_name='Gosling')
assert u1.name_collision_id == 0
assert u2.name_collision_id == 1
assert u3.name_collision_id == 2
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment