Пример #1
0
def verify_user(user):
    """Verify a user account without email confirmation

    If the user has an existing primary allauth.EmailAddress set then this is
    verified.

    Otherwise, an allauth.EmailAddress is created using email set for
    User.email.

    If the user is already verified raises a ValueError

    :param user: `User` to verify
    """
    # already has primary?
    existing_primary = EmailAddress.objects.filter(user=user, primary=True)
    if existing_primary.exists():
        existing_primary = existing_primary.first()
        if not existing_primary.verified:
            existing_primary.verified = True
            existing_primary.save()
            return
        else:
            # already verified
            raise ValueError("User '%s' is already verified" % user.username)
    sync_user_email_addresses(user)
    email_address = (EmailAddress.objects
                     .filter(user=user, email__iexact=user.email)
                     .order_by("primary")).first()
    email_address.verified = True
    email_address.primary = True
    email_address.save()
Пример #2
0
    def generateFluffyUsers(self):
        U = get_user_model()

        for i in range(0, self.FLUFFY_USER_COUNT):
            u = U.objects.create_user(
                email=self.fake.email(),
                password="******",
                first_name=self.fake.first_name(),
                last_name=self.fake.last_name(),
            )
            u.save()
            if self.fake.boolean(chance_of_getting_true=90):
                u.memberprofile.fake(self.fake)
                if self.fake.boolean(chance_of_getting_true=80):
                    self.verifyEmail(u)
                else:
                    sync_user_email_addresses(u)

                if self.fake.boolean(chance_of_getting_true=80):
                    u.memberprofile.approve(random.choice(self.memberActionUsers))

                if self.fake.boolean(chance_of_getting_true=90):
                    for i in range(random.randint(1,4)):
                        self._awardQualification(u.memberprofile, random.choice(self.PERSONAL_QUALS))

                    if self.fake.boolean(chance_of_getting_true=10):
                        for i in range(random.randint(1, 4)):
                            self._awardQualification(u.memberprofile, random.choice(self.INSTRUCTOR_QUALS))

            if self.fake.boolean(chance_of_getting_true=10):
                # Archive some
                u.memberprofile.archive(random.choice(self.memberActionUsers))
            u.memberprofile.save()

        self.status_write('Generated {} fluffy users'.format(self.FLUFFY_USER_COUNT))
Пример #3
0
 def save_model(self, request, obj, form, change):
     """Sync all auth email addresses"""
     if change:
         super().save_model(request, obj, form, change)
         sync_user_email_addresses(obj)
     else:
         Organization.objects.create_individual(obj)
         setup_user_email(request, obj, [])
Пример #4
0
    def dispatch(self, request, *args, **kwargs):

        # Retrieves user's emails
        sync_user_email_addresses(request.user)
        user_id = User.objects.get(pk=self.request.user.id).id

        # Returns the user to the profile page on success
        self.success_url = reverse_lazy('users:user-detail',
                                        kwargs={'pk': user_id})
        return super(CustomEmailView, self).dispatch(request, *args, **kwargs)
Пример #5
0
 def _make_hash_value(self, user, timestamp):
     ret = super(EmailAwarePasswordResetTokenGenerator,
                 self)._make_hash_value(user, timestamp)
     sync_user_email_addresses(user)
     emails = set([user.email] if user.email else [])
     emails.update(
         EmailAddress.objects.filter(user=user).values_list('email',
                                                            flat=True))
     ret += '|'.join(sorted(emails))
     return ret
Пример #6
0
    def sync_email(self, old_email):
        """Syncs up `self.email` with allauth's own `EmailAddress` model.

        :param old_email: Address this user previously had
        """
        if old_email != self.email:  # Update
            EmailAddress.objects.filter(
                user=self,
                email__iexact=old_email,
            ).update(email=self.email)
        else:
            sync_user_email_addresses(self)
    def configure_user(self, user):
        username = user.get_username()
        user.email = username
        sync_user_email_addresses(user)
        user.save()

        emails = EmailAddress.objects.filter(user=user, verified=False)
        for email in emails:
            email.verified = True
            email.save()

        return user
Пример #8
0
    def dispatch(self, request, *args, **kwargs):

        # Retrieves user's emails
        sync_user_email_addresses(request.user)

        # Returns the user to the profile page on success
        self.success_url = reverse_lazy('users:user-detail',
                                        kwargs={
                                            'username': request.user.username,
                                            'pk': request.user.id
                                        })
        return super().dispatch(request, *args, **kwargs)
Пример #9
0
    def sync_email(self, old_email):
        """Syncs up `self.email` with allauth's own `EmailAddress` model.

        :param old_email: Address this user previously had
        """
        if old_email != self.email:  # Update
            EmailAddress.objects.filter(
                user=self,
                email__iexact=old_email,
            ).update(email=self.email)
        else:
            sync_user_email_addresses(self)
Пример #10
0
    def verify(self, user):
        """Verify user within account app."""
        from allauth.account import utils as account_utils
        from allauth.account import models as account_models

        account_utils.sync_user_email_addresses(user)
        email = account_models.EmailAddress.objects.get(user=user)
        email.verified = True
        email.primary = True
        email.save(using=self._db)
        user.is_active = True
        user.save(using=self._db)
        return user
Пример #11
0
def verify_user(user):
    """Verify a user account without email confirmation

    If the user has an existing primary allauth.EmailAddress set then this is
    verified.

    Otherwise, an allauth.EmailAddress is created using email set for
    User.email.

    If the user is already verified raises a ValueError

    :param user: `User` to verify
    """
    if not user.email:
        raise ValidationError("You cannot verify an account with no email "
                              "set. You can set this user's email with "
                              "'pootle update_user_email %s EMAIL'"
                              % user.username)

    # Ensure this user's email address is unique
    try:
        validate_email_unique(user.email, user)
    except ValidationError:
        raise ValidationError("This user's email is not unique. You can find "
                              "duplicate emails with 'pootle "
                              "find_duplicate_emails'")

    # already has primary?
    existing_primary = EmailAddress.objects.filter(user=user, primary=True)
    if existing_primary.exists():
        existing_primary = existing_primary.first()
        if not existing_primary.verified:
            existing_primary.verified = True
            existing_primary.save()
            return
        else:
            # already verified
            raise ValueError("User '%s' is already verified" % user.username)

    sync_user_email_addresses(user)
    email_address = (EmailAddress.objects
                     .filter(user=user, email__iexact=user.email)
                     .order_by("primary")).first()
    email_address.verified = True
    email_address.primary = True
    email_address.save()
Пример #12
0
def verify_user(user):
    """Verify a user account without email confirmation

    If the user has an existing primary allauth.EmailAddress set then this is
    verified.

    Otherwise, an allauth.EmailAddress is created using email set for
    User.email.

    If the user is already verified raises a ValueError

    :param user: `User` to verify
    """
    if not user.email:
        raise ValidationError("You cannot verify an account with no email "
                              "set. You can set this user's email with "
                              "'pootle update_user_email %s EMAIL'"
                              % user.username)

    # Ensure this user's email address is unique
    try:
        validate_email_unique(user.email, user)
    except ValidationError:
        raise ValidationError("This user's email is not unique. You can find "
                              "duplicate emails with 'pootle "
                              "find_duplicate_emails'")

    # already has primary?
    existing_primary = EmailAddress.objects.filter(user=user, primary=True)
    if existing_primary.exists():
        existing_primary = existing_primary.first()
        if not existing_primary.verified:
            existing_primary.verified = True
            existing_primary.save()
            return
        else:
            # already verified
            raise ValueError("User '%s' is already verified" % user.username)

    sync_user_email_addresses(user)
    email_address = (EmailAddress.objects
                     .filter(user=user, email__iexact=user.email)
                     .order_by("primary")).first()
    email_address.verified = True
    email_address.primary = True
    email_address.save()
Пример #13
0
    def generateFluffyUsers(self):
        U = get_user_model()

        for i in range(0, self.FLUFFY_USER_COUNT):
            u = U.objects.create_user(
                email=self.fake.email(),
                password="******",
                first_name=self.fake.first_name(),
                last_name=self.fake.last_name(),
            )
            u.save()
            if self.fake.boolean(chance_of_getting_true=90):
                u.memberprofile.fake(self.fake)
                if self.fake.boolean(chance_of_getting_true=80):
                    self.verifyEmail(u)
                else:
                    sync_user_email_addresses(u)

                if self.fake.boolean(chance_of_getting_true=80):
                    u.memberprofile.approve(
                        random.choice(self.memberActionUsers))

                if self.fake.boolean(chance_of_getting_true=90):
                    for i in range(random.randint(1, 4)):
                        self._awardQualification(
                            u.memberprofile,
                            random.choice(self.PERSONAL_QUALS))

                    if self.fake.boolean(chance_of_getting_true=10):
                        for i in range(random.randint(1, 4)):
                            self._awardQualification(
                                u.memberprofile,
                                random.choice(self.INSTRUCTOR_QUALS))

            if self.fake.boolean(chance_of_getting_true=10):
                # Archive some
                u.memberprofile.archive(random.choice(self.memberActionUsers))
            u.memberprofile.save()

        self.status_write('Generated {} fluffy users'.format(
            self.FLUFFY_USER_COUNT))
Пример #14
0
 def dispatch(self, request, *args, **kwargs):
     sync_user_email_addresses(request.user)
     self.opendb_user = get_object_by_name(self.request.user.username)
     return super(ProfileView, self).dispatch(request, *args, **kwargs)
Пример #15
0
 def setUp(self):
     self.user = get_user_model()()
     allauth_utils.user_username(self.user, 'spam')
     allauth_utils.user_email(self.user, '*****@*****.**')
     self.user.save()
     allauth_utils.sync_user_email_addresses(self.user)
Пример #16
0
 def verifyEmail(self, user):
     sync_user_email_addresses(user)
     ea = EmailAddress.objects.get_for_user(user, user.email)
     ea.verified = True
     ea.save()
Пример #17
0
 def dispatch(self, request, *args, **kwargs):
     # user=User.objects.filter(id=self.request.session.get('user_info')['uid']).first()
     sync_user_email_addresses(request.user)
     return super(UserInfoView, self).dispatch(request, *args, **kwargs)
Пример #18
0
 def initial(self, *args, **kwargs):
     super(EmailViewSet, self).initial(*args, **kwargs)
     # sync the user's email when accessed
     sync_user_email_addresses(self.request.user)
Пример #19
0
 def verifyEmail(self, user):
     sync_user_email_addresses(user)
     ea = EmailAddress.objects.get_for_user(user, user.email)
     ea.verified = True
     ea.save()
Пример #20
0
 def handle(self, *args, **options):
     for user in User.objects.all():
         sync_user_email_addresses(user)