Commit c037de8a756ef04cafa9eeb27df4b4b1aca74f3d
Committed by
Sergio Oliveira
1 parent
077cee91
Exists in
master
and in
39 other branches
Added redirect myaccount to account url
Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com> Signed-off-by: Macártur Sousa <macartur.sc@gmail.com>
Showing
3 changed files
with
49 additions
and
5 deletions
Show diff stats
colab/accounts/tests/test_request.py
@@ -18,19 +18,50 @@ class RequestTest(TestCase): | @@ -18,19 +18,50 @@ class RequestTest(TestCase): | ||
18 | # TODO | 18 | # TODO |
19 | pass | 19 | pass |
20 | 20 | ||
21 | + def create_user(self): | ||
22 | + self.user_test = User() | ||
23 | + self.user_test.username = "usertest" | ||
24 | + self.user_test.email = "usertest@colab.com.br" | ||
25 | + self.user_test.set_password("1234colab") | ||
26 | + self.user_test.save() | ||
27 | + | ||
21 | def test_invalid_user_profile_url(self): | 28 | def test_invalid_user_profile_url(self): |
22 | response = self.client.get('/account/johndoe/') | 29 | response = self.client.get('/account/johndoe/') |
23 | self.assertEqual(404, response.status_code) | 30 | self.assertEqual(404, response.status_code) |
24 | 31 | ||
25 | def test_valid_user_profile_url(self): | 32 | def test_valid_user_profile_url(self): |
26 | - self.userTest = User() | ||
27 | - self.userTest.username = "usertest" | ||
28 | - self.userTest.email = "usertest@colab.com.br" | ||
29 | - self.userTest.set_password("1234colab") | ||
30 | - self.userTest.save() | 33 | + self.create_user() |
31 | response = self.client.get('/account/usertest/') | 34 | response = self.client.get('/account/usertest/') |
32 | self.assertEqual(200, response.status_code) | 35 | self.assertEqual(200, response.status_code) |
33 | 36 | ||
34 | def test_valid_login_url(self): | 37 | def test_valid_login_url(self): |
35 | response = self.client.get('/account/login') | 38 | response = self.client.get('/account/login') |
36 | self.assertEqual(200, response.status_code) | 39 | self.assertEqual(200, response.status_code) |
40 | + | ||
41 | + def test_myaccount_redirect_not_authenticated_user(self): | ||
42 | + self.create_user() | ||
43 | + response = self.client.get('/myaccount/edit') | ||
44 | + self.assertEqual(404, response.status_code) | ||
45 | + | ||
46 | + def test_myaccount_redirect_user_profile(self): | ||
47 | + self.create_user() | ||
48 | + self.client.login(username="usertest", password='1234colab') | ||
49 | + response = self.client.get('/myaccount/') | ||
50 | + self.assertEqual(302, response.status_code) | ||
51 | + self.assertEqual("http://testserver/account/usertest/", response.url) | ||
52 | + | ||
53 | + def test_myaccount_redirect_edit(self): | ||
54 | + self.create_user() | ||
55 | + self.client.login(username="usertest", password='1234colab') | ||
56 | + response = self.client.get('/myaccount/edit') | ||
57 | + self.assertEqual(302, response.status_code) | ||
58 | + self.assertEqual("http://testserver/account/usertest/edit", | ||
59 | + response.url) | ||
60 | + | ||
61 | + def test_myaccount_redirect_subscriptions(self): | ||
62 | + self.create_user() | ||
63 | + self.client.login(username="usertest", password='1234colab') | ||
64 | + response = self.client.get('/myaccount/subscriptions') | ||
65 | + self.assertEqual(302, response.status_code) | ||
66 | + self.assertEqual("http://testserver/account/usertest/subscriptions", | ||
67 | + response.url) |
colab/accounts/views.py
@@ -11,6 +11,7 @@ from django.shortcuts import render, redirect, get_object_or_404 | @@ -11,6 +11,7 @@ from django.shortcuts import render, redirect, get_object_or_404 | ||
11 | from django.core.urlresolvers import reverse | 11 | from django.core.urlresolvers import reverse |
12 | from django.core.exceptions import PermissionDenied | 12 | from django.core.exceptions import PermissionDenied |
13 | from django.views.generic import DetailView, UpdateView, TemplateView | 13 | from django.views.generic import DetailView, UpdateView, TemplateView |
14 | +from django.http import Http404 | ||
14 | 15 | ||
15 | from conversejs import xmpp | 16 | from conversejs import xmpp |
16 | from conversejs.models import XMPPAccount | 17 | from conversejs.models import XMPPAccount |
@@ -272,3 +273,13 @@ def password_reset_complete_custom(request): | @@ -272,3 +273,13 @@ def password_reset_complete_custom(request): | ||
272 | messages.success(request, msg) | 273 | messages.success(request, msg) |
273 | 274 | ||
274 | return redirect('home') | 275 | return redirect('home') |
276 | + | ||
277 | + | ||
278 | +def myaccount_redirect(request, route): | ||
279 | + if not request.user.is_authenticated(): | ||
280 | + raise Http404() | ||
281 | + | ||
282 | + username = request.user.username | ||
283 | + url = "/account/" + username + "/" + route | ||
284 | + | ||
285 | + return redirect(url) |
colab/urls.py
@@ -28,6 +28,8 @@ urlpatterns = patterns( | @@ -28,6 +28,8 @@ urlpatterns = patterns( | ||
28 | # (same here) TODO: move to nginx | 28 | # (same here) TODO: move to nginx |
29 | url(r'^signup/', include('colab.accounts.urls')), | 29 | url(r'^signup/', include('colab.accounts.urls')), |
30 | url(r'^account/', include('colab.accounts.urls')), | 30 | url(r'^account/', include('colab.accounts.urls')), |
31 | + url(r'^myaccount/(?P<route>[\w@+.-/?]*)$', | ||
32 | + 'colab.accounts.views.myaccount_redirect',name='myaccount' ), | ||
31 | 33 | ||
32 | url(r'', include('django_browserid.urls')), | 34 | url(r'', include('django_browserid.urls')), |
33 | 35 |