X-Git-Url: https://git.mdrn.pl/cas.git/blobdiff_plain/7e61a123a0b4b5f6641cb791f76cda92369dca4b..de84f8005cbb194987bd71fd2e1282f3a113f3cf:/src/accounts/views.py diff --git a/src/accounts/views.py b/src/accounts/views.py index a501b97..799b4fe 100644 --- a/src/accounts/views.py +++ b/src/accounts/views.py @@ -2,11 +2,16 @@ from django import http from django.contrib.auth.decorators import login_required from django.contrib import messages -from django.shortcuts import render -from django.utils.translation import ugettext as __ +from django.shortcuts import render, redirect +from django.utils.translation import ugettext as _ from django.views.decorators.http import require_POST from accounts.forms import UserBasicForm, UserPasswordForm from .models import Service +from django.views.generic.edit import FormView +from django.contrib.auth import login +from django.contrib.auth.models import User +from django.contrib.auth.forms import UserCreationForm + @login_required def account_profile(request, basic_form=None, pass_form=None): @@ -24,7 +29,7 @@ def account_change_basic_profile(request): if form.is_valid(): form.save() - messages.add_message(request, messages.INFO, __("Profile has been changed.")) + messages.add_message(request, messages.INFO, _("Profile has been changed.")) return http.HttpResponseRedirect('/accounts/') return account_profile(request, basic_form=form) @@ -38,7 +43,18 @@ def account_change_password(request): request.user.set_password(form.cleaned_data['new_password']) request.user.save() - messages.add_message(request, messages.INFO, __("Password has been changed.")) + messages.add_message(request, messages.INFO, _("Password has been changed.")) return http.HttpResponseRedirect('/accounts/') return account_profile(request, pass_form=form) + + +class Register(FormView): + form_class = UserCreationForm + template_name = "account/register.html" + + def form_valid(self, form): + user = form.save() + user.backend='django.contrib.auth.backends.ModelBackend' + login(self.request, user) + return redirect('account_profile')