Guest User

Untitled

a guest
Apr 16th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. class SetPasswordForm(forms.Form):
  2. password = forms.CharField(label="Password", widget=forms.PasswordInput)
  3.  
  4. def __init__(self, user, *args, **kwargs):
  5. self.user = user
  6. super(SetPasswordForm, self).__init__(*args, **kwargs)
  7.  
  8. def save(self, commit=True):
  9. self.user.set_password(self.cleaned_data['password'])
  10.  
  11. if commit:
  12. self.user.save(update_fields=['password'])
  13.  
  14. return self.user
  15.  
  16. class User(BaseUser):
  17. activation_code = models.CharField(max_length=100, blank=True, null=True)
  18. activated_at = models.DateTimeField(blank=True, null=True)
  19.  
  20. def activate(self):
  21. self.is_active = True
  22. self.activation_code = None
  23. self.activated_at = datetime.now()
  24. self.save(update_fields=['is_active', 'activation_code', 'activated_at'])
  25.  
  26. class ActivateUserView(View):
  27. def post(self, request, activation_code):
  28. try:
  29. user = User.objects.get(activation_code=activation_code)
  30. except User.DoesNotExist:
  31. return Http404()
  32.  
  33. form = SetPasswordForm(user=user, data=request.POST)
  34.  
  35. if form.is_valid():
  36. user = form.save(commit=False)
  37. user.activate()
  38.  
  39. return render(request, 'users/activate_user_done.html', {'user': user})
  40.  
  41. return render(request, self.template_name, {'user': user})
Add Comment
Please, Sign In to add comment