diff --git a/users/urls.py b/users/urls.py
index 226883b..e425493 100644
--- a/users/urls.py
+++ b/users/urls.py
@@ -3,13 +3,15 @@ from django.core.urlresolvers import reverse_lazy
from pastebin.models import Geometry
-from views import UserCreate, SendConfirmationView, CheckConfirmationView
+from views import UserCreateView, UserUpdateView, SendConfirmationView, CheckConfirmationView
urlpatterns = patterns('',
- url(r'^signup/$', UserCreate.as_view(), name='signup'),
+ url(r'^signup/$', UserCreateView.as_view(), name='signup'),
url(r'^confirm/(?P\d+)/$', SendConfirmationView.as_view(), name='send_confirmation'),
url(r'^confirm/(?P\d+)/(?P.+)/$', CheckConfirmationView.as_view(), name='check_confirmation'),
+ url(r'^update/(?P\d+)/$', UserUpdateView.as_view(), name='user_update'),
+
url(r'^login/$', 'django.contrib.auth.views.login', {'extra_context' : {'latest_geometries' : Geometry.get_latest()},
'template_name' : 'users/login.html'},
name='login'),
@@ -17,8 +19,5 @@ urlpatterns = patterns('',
'next_page' : reverse_lazy('login')},
name='logout'),
- url(r'^password/change/$', 'django.contrib.auth.views.password_change',{'extra_context' : {'latest_geometries' : Geometry.get_latest()},
- 'template_name' : 'users/password_change.html',
- 'post_change_redirect' : reverse_lazy('login')},
- name='password_change'),
+
)
\ No newline at end of file
diff --git a/users/views.py b/users/views.py
index 435f7cc..07dea10 100644
--- a/users/views.py
+++ b/users/views.py
@@ -1,4 +1,4 @@
-from django.views.generic.edit import CreateView
+from django.views.generic.edit import CreateView, UpdateView
from django.views.generic.base import TemplateView
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
@@ -7,20 +7,35 @@ from django.contrib.auth.tokens import default_token_generator
from django.template import loader
from django.utils.http import int_to_base36
from django.http import Http404
+from django.core.exceptions import PermissionDenied
from pastebin.views import LastesGeometriesMixin
-from forms import UserCreateForm
+from forms import UserCreateForm, UserUpdateForm
-class UserCreate(CreateView, LastesGeometriesMixin):
+class UserCreateView(CreateView, LastesGeometriesMixin):
model = User
form_class = UserCreateForm
template_name = 'users/signup.html'
+
def get_success_url(self):
return reverse('send_confirmation', kwargs={'user_id' : self.object.pk})
+class UserUpdateView(UpdateView, LastesGeometriesMixin):
+ model = User
+ form_class = UserUpdateForm
+ template_name = 'users/user_update.html'
+ pk_url_kwarg = 'user_id'
+
+ def get_queryset(self):
+ return self.model.objects.filter(id=self.request.user.id)
+
+ def get_success_url(self):
+ return reverse('geometry_create')
+
+
class SendConfirmationView(TemplateView, LastesGeometriesMixin):
template_name = 'users/send_confirmation.html'