Ejemplo n.º 1
0
def populate_sameuser(apps, schema_editor):
    User = apps.get_model('auth', 'User')
    SameUser = apps.get_model('accounts', 'SameUser')

    # Get all case-insensitive duplicate email addresses which are used in more than one account
    email_addresses = User.objects.values_list(Lower('email'), flat=True)\
        .annotate(num_email=Count('email'))\
        .filter(num_email__gt=1)

    for email in email_addresses:
        # Get all users with that email address
        uss = User.objects.filter(
            email__iexact=email).order_by('-last_login').all()

        u1 = uss[0]
        for u2 in uss[1:]:
            # Assign users to variables and modify email of second user (to prevent the duplicates)
            u2.email = transform_unique_email(email)
            u2.save()

            # Create SameUser object
            SameUser.objects.create(main_user=u1,
                                    main_orig_email=email,
                                    secondary_user=u2,
                                    secondary_orig_email=email)
Ejemplo n.º 2
0
def populate_sameuser(apps, schema_editor):
    User = apps.get_model("auth", "User")
    SameUser = apps.get_model("accounts", "SameUser")

    # Get all email addresses which are used in more than one account
    email_addresses = User.objects.values_list("email", flat=True)\
        .annotate(num_email=Count('email'))\
        .filter(num_email__gt=1).exclude(email="")

    for email in email_addresses:
        # Get all users with that email address
        uss = User.objects.filter(email=email).order_by('-last_login').all()

        # Check that there are 2 users (there should be no more than 2 users with the same address)
        assert uss.count() == 2

        # Assign users to variables and modify email of second user (to prevent the duplicates)
        u1 = uss[0]
        u2 = uss[1]
        u2.email = transform_unique_email(email)
        u2.save()

        # Create SameUser object
        SameUser.objects.create(main_user=u1, main_orig_email=email,
                                secondary_user=u2, secondary_orig_email=email)
Ejemplo n.º 3
0
 def setUp(self):
     self.user_a = User.objects.create_user("user_a", password="******", email='*****@*****.**')
     self.original_shared_email = '*****@*****.**'
     self.user_b = User.objects.create_user("user_b", password="******", email=self.original_shared_email)
     self.user_c = User.objects.create_user("user_c", password="******",
                                            email=transform_unique_email(self.original_shared_email))
     SameUser.objects.create(
         main_user=self.user_b,
         main_orig_email=self.user_b.email,
         secondary_user=self.user_c,
         secondary_orig_email=self.user_b.email,  # Must be same email (original)
     )
Ejemplo n.º 4
0
 def setUp(self):
     self.user_a = User.objects.create_user("user_a", password="******", email='*****@*****.**')
     self.original_shared_email = '*****@*****.**'
     self.user_b = User.objects.create_user("user_b", password="******", email=self.original_shared_email)
     self.user_c = User.objects.create_user("user_c", password="******",
                                            email=transform_unique_email(self.original_shared_email))
     SameUser.objects.create(
         main_user=self.user_b,
         main_orig_email=self.user_b.email,
         secondary_user=self.user_c,
         secondary_orig_email=self.user_b.email,  # Must be same email (original)
     )
def populate_sameuser(apps, schema_editor):
    User = apps.get_model('auth', 'User')
    SameUser = apps.get_model('accounts', 'SameUser')

    # Get all case-insensitive duplicate email addresses which are used in more than one account
    email_addresses = User.objects.values_list(Lower('email'), flat=True)\
        .annotate(num_email=Count('email'))\
        .filter(num_email__gt=1)

    for email in email_addresses:
        # Get all users with that email address
        uss = User.objects.filter(email__iexact=email).order_by('-last_login').all()

        u1 = uss[0]
        for u2 in uss[1:]:
            # Assign users to variables and modify email of second user (to prevent the duplicates)
            u2.email = transform_unique_email(email)
            u2.save()

            # Create SameUser object
            SameUser.objects.create(main_user=u1, main_orig_email=email,
                                    secondary_user=u2, secondary_orig_email=email)
Ejemplo n.º 6
0
 def secondary_trans_email(self):
     return transform_unique_email(self.orig_email)
Ejemplo n.º 7
0
 def secondary_trans_email(self):
     return transform_unique_email(self.orig_email)