Пример #1
0
def get_username_options(user):
    options = UsernameChanges(user)
    return {
        'changes_left': options.left,
        'next_on': options.next_on,
        'length_min': settings.username_length_min,
        'length_max': settings.username_length_max,
    }
Пример #2
0
    def test_username_changes_helper(self):
        """username changes are tracked correctly"""
        User = get_user_model()
        test_user = User.objects.create_user('Bob', '*****@*****.**', 'pass123')

        namechanges = UsernameChanges(test_user)
        self.assertEqual(namechanges.left, 2)
        self.assertIsNone(namechanges.next_on)

        self.assertEqual(test_user.namechanges.count(), 0)

        test_user.set_username('Boberson')
        test_user.save(update_fields=['username', 'slug'])

        namechanges = UsernameChanges(test_user)
        self.assertEqual(namechanges.left, 1)
        self.assertIsNone(namechanges.next_on)

        self.assertEqual(test_user.namechanges.count(), 1)
Пример #3
0
def change_username(request):
    namechanges = UsernameChanges(request.user)

    form = ChangeUsernameForm()
    if request.method == 'POST' and namechanges.left:
        form = ChangeUsernameForm(request.POST, user=request.user)
        if form.is_valid():
            try:
                form.change_username(changed_by=request.user)

                message = _("Your username has been changed.")
                messages.success(request, message)

                return redirect('misago:usercp_change_username')
            except IntegrityError:
                message = _("Error changing username. Please try again.")
                messages.error(request, message)

    return render(request, 'misago/usercp/change_username.html', {
            'form': form,
            'changes_left': namechanges.left,
            'next_change_on': namechanges.next_on
        })