|
16 | 16 | from django.views.generic.edit import FormView
|
17 | 17 |
|
18 | 18 | from account import signals
|
19 |
| -from account.conf import settings |
| 19 | +from account.conf import settings, user_as_email, get_email_model |
20 | 20 | from account.forms import (
|
21 | 21 | ChangePasswordForm,
|
22 | 22 | LoginUsernameForm,
|
| 23 | + LoginEmailForm, |
23 | 24 | PasswordResetForm,
|
24 | 25 | PasswordResetTokenForm,
|
25 | 26 | SettingsForm,
|
|
37 | 38 | )
|
38 | 39 | from account.utils import default_redirect, get_form_data
|
39 | 40 |
|
| 41 | +EmailModel = get_email_model() |
| 42 | + |
| 43 | +if user_as_email(): |
| 44 | + LoginForm = LoginEmailForm |
| 45 | +else: |
| 46 | + LoginForm = LoginUsernameForm |
| 47 | + |
40 | 48 |
|
41 | 49 | class PasswordMixin(object):
|
42 | 50 | """
|
@@ -120,7 +128,7 @@ def create_password_history(self, form, user):
|
120 | 128 |
|
121 | 129 |
|
122 | 130 | class SignupView(PasswordMixin, FormView):
|
123 |
| - |
| 131 | + # TODO need to closely go through this. |
124 | 132 | template_name = "account/signup.html"
|
125 | 133 | template_name_ajax = "account/ajax/signup.html"
|
126 | 134 | template_name_email_confirmation_sent = "account/email_confirmation_sent.html"
|
@@ -284,15 +292,20 @@ def create_email_address(self, form, **kwargs):
|
284 | 292 | kwargs.setdefault("primary", True)
|
285 | 293 | kwargs.setdefault("verified", False)
|
286 | 294 | if self.signup_code:
|
287 |
| - kwargs["verified"] = self.created_user.email == self.signup_code.email if self.signup_code.email else False |
| 295 | + verified = self.created_user.email == self.signup_code.email if self.signup_code.email else False |
| 296 | + kwargs["verified"] = verified |
| 297 | + |
| 298 | + if user_as_email(): |
| 299 | + self.created_user = kwargs['verified'] |
| 300 | + return self.created_user |
288 | 301 | return EmailAddress.objects.add_email(self.created_user, self.created_user.email, **kwargs)
|
289 | 302 |
|
290 | 303 | def use_signup_code(self, user):
|
291 | 304 | if self.signup_code:
|
292 | 305 | self.signup_code.use(user)
|
293 | 306 |
|
294 | 307 | def send_email_confirmation(self, email_address):
|
295 |
| - email_address.send_confirmation(site=get_current_site(self.request)) |
| 308 | + EmailModel.objects.send_confirmation(email=email_address, site=get_current_site(self.request)) |
296 | 309 |
|
297 | 310 | def after_signup(self, form):
|
298 | 311 | signals.user_signed_up.send(sender=SignupForm, user=self.created_user, form=form)
|
@@ -354,7 +367,7 @@ class LoginView(FormView):
|
354 | 367 |
|
355 | 368 | template_name = "account/login.html"
|
356 | 369 | template_name_ajax = "account/ajax/login.html"
|
357 |
| - form_class = LoginUsernameForm |
| 370 | + form_class = LoginForm |
358 | 371 | form_kwargs = {}
|
359 | 372 | redirect_field_name = "next"
|
360 | 373 |
|
@@ -774,6 +787,10 @@ def update_email(self, form, confirm=None):
|
774 | 787 | confirm = settings.ACCOUNT_EMAIL_CONFIRMATION_EMAIL
|
775 | 788 | # @@@ handle multiple emails per user
|
776 | 789 | email = form.cleaned_data["email"].strip()
|
| 790 | + if user_as_email(): |
| 791 | + # When using the user as email we don't need to care about primary emails |
| 792 | + return |
| 793 | + |
777 | 794 | if not self.primary_email_address:
|
778 | 795 | user.email = email
|
779 | 796 | EmailAddress.objects.add_email(self.request.user, email, primary=True, confirm=confirm)
|
|
0 commit comments