Example #1
0
def set_default_avatar(user):
    try:
        SET_DEFAULT_AVATAR[settings.default_avatar](user)
    except RuntimeError:
        if gallery.galleries_exist():
            SET_DEFAULT_AVATAR[settings.default_gravatar_fallback](user)
        else:
            dynamic.set_avatar(user)
Example #2
0
def set_default_avatar(user):
    try:
        SET_DEFAULT_AVATAR[settings.default_avatar](user)
    except RuntimeError:
        if gallery.galleries_exist():
            SET_DEFAULT_AVATAR[settings.default_gravatar_fallback](user)
        else:
            dynamic.set_avatar(user)
Example #3
0
    def handle(self, *args, **options):
        try:
            fake_users_to_create = int(args[0])
        except IndexError:
            fake_users_to_create = 5
        except ValueError:
            self.stderr.write("\nOptional argument should be integer.")
            sys.exit(1)

        fake = Factory.create()
        User = get_user_model()

        ranks = [r for r in Rank.objects.all()]

        message = 'Creating %s fake user accounts...\n'
        self.stdout.write(message % fake_users_to_create)

        message = '\n\nSuccessfully created %s fake user accounts in %s'

        created_count = 0
        start_time = time.time()
        show_progress(self, created_count, fake_users_to_create)
        for i in range(fake_users_to_create):
            try:
                kwargs = {
                    'rank': random.choice(ranks),
                }

                user = User.objects.create_user(fake.first_name(),
                                                fake.email(),
                                                'pass123',
                                                set_default_avatar=False,
                                                **kwargs)

                if random.randint(0, 100) > 90:
                    dynamic.set_avatar(user)
                else:
                    gallery.set_random_avatar(user)

                user.avatar_hash = get_avatar_hash(user)
                user.save(update_fields=['avatar_hash'])
            except (ValidationError, IntegrityError):
                pass
            else:
                created_count += 1
                show_progress(self, created_count, fake_users_to_create,
                              start_time)

        total_time = time.time() - start_time
        total_humanized = time.strftime('%H:%M:%S', time.gmtime(total_time))
        self.stdout.write(message % (created_count, total_humanized))
Example #4
0
    def handle(self, *args, **options):
        try:
            fake_users_to_create = int(args[0])
        except IndexError:
            fake_users_to_create = 5
        except ValueError:
            self.stderr.write("\nOptional argument should be integer.")
            sys.exit(1)

        fake = Factory.create()
        User = get_user_model()

        ranks = [r for r in Rank.objects.all()]

        message = 'Creating %s fake user accounts...\n'
        self.stdout.write(message % fake_users_to_create)

        message = '\n\nSuccessfully created %s fake user accounts in %s'

        created_count = 0
        start_time = time.time()
        show_progress(self, created_count, fake_users_to_create)
        for i in range(fake_users_to_create):
            try:
                kwargs = {
                    'rank': random.choice(ranks),
                }

                user = User.objects.create_user(
                    fake.first_name(), fake.email(), 'pass123',
                    set_default_avatar=False, **kwargs)

                if random.randint(0, 100) > 90:
                    dynamic.set_avatar(user)
                else:
                    gallery.set_random_avatar(user)

                user.avatar_hash = get_avatar_hash(user)
                user.save(update_fields=['avatar_hash'])
            except (ValidationError, IntegrityError):
                pass
            else:
                created_count += 1
                show_progress(
                    self, created_count, fake_users_to_create, start_time)

        total_time = time.time() - start_time
        total_humanized = time.strftime('%H:%M:%S', time.gmtime(total_time))
        self.stdout.write(message % (created_count, total_humanized))
    def handle(self, *args, **options):
        items_to_create = options['users']

        fake = Factory.create()

        ranks = [r for r in Rank.objects.all()]

        message = 'Creating %s fake user accounts...\n'
        self.stdout.write(message % items_to_create)

        created_count = 0
        start_time = time.time()
        show_progress(self, created_count, items_to_create)

        while created_count < items_to_create:
            try:
                possible_usernames = [
                    fake.first_name(),
                    fake.last_name(),
                    fake.name().replace(' ', ''),
                    fake.user_name(),
                ]

                user = UserModel.objects.create_user(
                    random.choice(possible_usernames),
                    fake.email(),
                    'pass123',
                    set_default_avatar=False,
                    rank=random.choice(ranks),
                )

                dynamic.set_avatar(user)
                user.save(update_fields=['avatars'])
            except (ValidationError, IntegrityError):
                pass
            else:
                created_count += 1
                show_progress(self, created_count, items_to_create, start_time)

        total_time = time.time() - start_time
        total_humanized = time.strftime('%H:%M:%S', time.gmtime(total_time))
        message = '\n\nSuccessfully created %s fake user accounts in %s'
        self.stdout.write(message % (created_count, total_humanized))
Example #6
0
    def handle(self, *args, **options):
        items_to_create = options['users']

        fake = Factory.create()

        ranks = [r for r in Rank.objects.all()]

        message = 'Creating %s fake user accounts...\n'
        self.stdout.write(message % items_to_create)

        message = '\n\nSuccessfully created %s fake user accounts in %s'

        created_count = 0
        start_time = time.time()
        show_progress(self, created_count, items_to_create)

        while created_count < items_to_create:
            try:
                kwargs = {
                    'rank': random.choice(ranks),
                }

                user = UserModel.objects.create_user(fake.first_name(),
                                                     fake.email(),
                                                     'pass123',
                                                     set_default_avatar=False,
                                                     **kwargs)

                if random.randint(0, 100) > 90:
                    dynamic.set_avatar(user)
                else:
                    gallery.set_random_avatar(user)
                user.save(update_fields=['avatars'])
            except (ValidationError, IntegrityError):
                pass
            else:
                created_count += 1
                show_progress(self, created_count, items_to_create, start_time)

        total_time = time.time() - start_time
        total_humanized = time.strftime('%H:%M:%S', time.gmtime(total_time))
        self.stdout.write(message % (created_count, total_humanized))
Example #7
0
def move_avatars(stdout, style):
    for old_user in fetch_assoc('SELECT * FROM misago_user ORDER BY id'):
        user = UserModel.objects.get(pk=movedids.get('user', old_user['id']))

        if old_user['avatar_ban'] or old_user['avatar_type'] == 'gallery':
            dynamic.set_avatar(user)
        else:
            if old_user['avatar_type'] == 'gravatar':
                try:
                    gravatar.set_avatar(user)
                except gravatar.GravatarError:
                    dynamic.set_avatar(user)
                    print_warning('%s: failed to download Gravatar' % user,
                                  stdout, style)
            else:
                try:
                    if not old_user['avatar_original'] or not old_user[
                            'avatar_crop']:
                        raise ValidationError("Invalid avatar upload data.")

                    image_path = os.path.join(OLD_FORUM['MEDIA'], 'avatars',
                                              old_user['avatar_original'])
                    image = uploaded.validate_dimensions(image_path)

                    cleaned_crop = convert_crop(image, old_user)
                    uploaded.clean_crop(image, cleaned_crop)

                    store.store_temporary_avatar(user, image)
                    uploaded.crop_source_image(user, 'tmp', cleaned_crop)
                except ValidationError as e:
                    dynamic.set_avatar(user)
                    print_warning('%s: %s' % (user, e.args[0]), stdout, style)

        user.save()
    def handle(self, *args, **options):
        items_to_create = options['users']

        fake = Factory.create()

        ranks = [r for r in Rank.objects.all()]

        message = 'Creating %s fake user accounts...\n'
        self.stdout.write(message % items_to_create)

        message = '\n\nSuccessfully created %s fake user accounts in %s'

        created_count = 0
        start_time = time.time()
        show_progress(self, created_count, items_to_create)

        while created_count < items_to_create:
            try:
                user = UserModel.objects.create_user(
                    fake.first_name(),
                    fake.email(),
                    'pass123',
                    set_default_avatar=False,
                    rank=random.choice(ranks),
                )

                if random.randint(0, 100) > 90:
                    dynamic.set_avatar(user)
                else:
                    gallery.set_random_avatar(user)
                user.save(update_fields=['avatars'])
            except (ValidationError, IntegrityError):
                pass
            else:
                created_count += 1
                show_progress(self, created_count, items_to_create, start_time)

        total_time = time.time() - start_time
        total_humanized = time.strftime('%H:%M:%S', time.gmtime(total_time))
        self.stdout.write(message % (created_count, total_humanized))
Example #9
0
    def test_delete_avatar_on_delete(self):
        """account deletion for user also deletes their avatar file"""
        user = User.objects.create_user('Bob', '*****@*****.**', 'Pass.123')
        dynamic.set_avatar(user)
        user.save()

        user_avatars = []
        for avatar in user.avatar_set.all():
            avatar_path = Path(avatar.image.path)
            self.assertTrue(avatar_path.exists())
            self.assertTrue(avatar_path.isfile())
            user_avatars.append(avatar)
        self.assertNotEqual(user_avatars, [])

        user.delete()

        for removed_avatar in user_avatars:
            avatar_path = Path(removed_avatar.image.path)
            self.assertFalse(avatar_path.exists())
            self.assertFalse(avatar_path.isfile())

            with self.assertRaises(Avatar.DoesNotExist):
                Avatar.objects.get(pk=removed_avatar.pk)
Example #10
0
 def test_dynamic_avatar(self):
     """dynamic avatar gets created"""
     self.assertNoAvatarIsSet()
     dynamic.set_avatar(self.user)
     self.assertAvatarWasSet()
 def test_dynamic_avatar(self):
     """dynamic avatar gets created"""
     self.assertNoAvatarIsSet()
     dynamic.set_avatar(self.user)
     self.assertAvatarWasSet()