Commit c037de8a756ef04cafa9eeb27df4b4b1aca74f3d

Authored by Macartur Sousa
Committed by Sergio Oliveira
1 parent 077cee91

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>
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)
@@ -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