Commit 80b68d86a46f8437300d622be5b142b4c881d5fc
Committed by
Sergio Oliveira
1 parent
eff7a486
Exists in
master
and in
13 other branches
Handling user creation with(out) browserid
Signed-off-by: Alexandre Barbosa <alexandreab@live.com> Signed-off-by: Carlos Oliveira <carlospecter@gmail.com> Signed-off-by: Lucas Kanashiro <kanashiroduarte@gmail.com>
Showing
1 changed file
with
22 additions
and
16 deletions
Show diff stats
colab/accounts/views.py
@@ -22,7 +22,6 @@ from haystack.query import SearchQuerySet | @@ -22,7 +22,6 @@ from haystack.query import SearchQuerySet | ||
22 | 22 | ||
23 | from colab.super_archives.models import EmailAddress, Message, EmailAddressValidation | 23 | from colab.super_archives.models import EmailAddress, Message, EmailAddressValidation |
24 | from colab.search.utils import trans | 24 | from colab.search.utils import trans |
25 | -from colab.settings import BROWSERID_ENABLED | ||
26 | # from proxy.trac.models import WikiCollabCount, TicketCollabCount | 25 | # from proxy.trac.models import WikiCollabCount, TicketCollabCount |
27 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm, | 26 | from .forms import (UserCreationForm, ListsForm, UserUpdateForm, |
28 | ChangeXMPPPasswordForm) | 27 | ChangeXMPPPasswordForm) |
@@ -129,19 +128,21 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView): | @@ -129,19 +128,21 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView): | ||
129 | 128 | ||
130 | 129 | ||
131 | def signup(request): | 130 | def signup(request): |
132 | - # TODO: Refactor | ||
133 | - | ||
134 | user = request.user | 131 | user = request.user |
135 | - # If the user is not authenticated in Persona, and try to access url | ||
136 | - # /account/register/ then he will be redirected to login page. | ||
137 | - if not user.is_authenticated(): | ||
138 | - return redirect('login') | ||
139 | - | ||
140 | - # If the user is authenticated in Persona, already register in Colab | ||
141 | - # and try to access directly "/account/register/", then he will be redirect | ||
142 | - # to user profile. | ||
143 | - if not user.needs_update: | ||
144 | - return redirect('user_profile', username=user.username) | 132 | + BROWSERID_ENABLED = getattr(settings, 'BROWSERID_ENABLED', False) |
133 | + | ||
134 | + if BROWSERID_ENABLED: | ||
135 | + # If the user is not authenticated, redirect to login | ||
136 | + if not request.user.is_authenticated(): | ||
137 | + return redirect('login') | ||
138 | + | ||
139 | + if request.user.is_authenticated(): | ||
140 | + # If the user doesn't need to update its main data, | ||
141 | + # redirect to its profile | ||
142 | + # It happens when user is created by browserid | ||
143 | + # and didn't set his/her main data | ||
144 | + if not request.user.needs_update: | ||
145 | + return redirect('user_profile', username=request.user.username) | ||
145 | 146 | ||
146 | # If the user is authenticated in Persona, but not in the Colab then he | 147 | # If the user is authenticated in Persona, but not in the Colab then he |
147 | # will be redirected to the register form. | 148 | # will be redirected to the register form. |
@@ -152,7 +153,10 @@ def signup(request): | @@ -152,7 +153,10 @@ def signup(request): | ||
152 | return render(request, 'accounts/user_create_form.html', | 153 | return render(request, 'accounts/user_create_form.html', |
153 | {'user_form': user_form, 'lists_form': lists_form}) | 154 | {'user_form': user_form, 'lists_form': lists_form}) |
154 | 155 | ||
155 | - user_form = UserCreationForm(request.POST, instance=user) | 156 | + if BROWSERID_ENABLED: |
157 | + user_form = UserCreationForm(request.POST, instance=request.user) | ||
158 | + else: | ||
159 | + user_form = UserCreationFormNoBrowserId(request.POST) | ||
156 | lists_form = ListsForm(request.POST) | 160 | lists_form = ListsForm(request.POST) |
157 | 161 | ||
158 | if not user_form.is_valid() or not lists_form.is_valid(): | 162 | if not user_form.is_valid() or not lists_form.is_valid(): |
@@ -161,11 +165,13 @@ def signup(request): | @@ -161,11 +165,13 @@ def signup(request): | ||
161 | 165 | ||
162 | user = user_form.save(commit=False) | 166 | user = user_form.save(commit=False) |
163 | user.needs_update = False | 167 | user.needs_update = False |
168 | + | ||
164 | if not BROWSERID_ENABLED: | 169 | if not BROWSERID_ENABLED: |
165 | user.is_active = False | 170 | user.is_active = False |
171 | + user.save() | ||
166 | EmailAddressValidation.create(user.email, user) | 172 | EmailAddressValidation.create(user.email, user) |
167 | - | ||
168 | - user.save() | 173 | + else: |
174 | + user.save() | ||
169 | 175 | ||
170 | # Check if the user's email have been used previously | 176 | # Check if the user's email have been used previously |
171 | # in the mainling lists to link the user to old messages | 177 | # in the mainling lists to link the user to old messages |