Registration reply

remotes/origin/1203
Назар Котюк 11 years ago
parent 9a37532624
commit 8e8bb64f4f
  1. 1
      proj/urls.py
  2. 32
      registration/backends/default/views.py
  3. 12
      registration/forms.py

@ -102,6 +102,7 @@ urlpatterns += patterns('',
# ajax urls # ajax urls
urlpatterns += patterns('', urlpatterns += patterns('',
url(r'^registration/reply/$', 'registration.backends.default.views.RegisterReply'),
url(r'^register/', 'registration.backends.default.views.RegisterAjaxView'), url(r'^register/', 'registration.backends.default.views.RegisterAjaxView'),
url(r'^register-complete/', 'registration.backends.default.views.complete_registration'), url(r'^register-complete/', 'registration.backends.default.views.complete_registration'),
url(r'^callback/', 'core.simple_index_view.callback'), url(r'^callback/', 'core.simple_index_view.callback'),

@ -2,6 +2,7 @@
from django.conf import settings from django.conf import settings
from django.contrib.sites.models import RequestSite from django.contrib.sites.models import RequestSite
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.utils.translation import ugettext as _
from registration import signals from registration import signals
from registration.models import RegistrationProfile from registration.models import RegistrationProfile
@ -187,6 +188,35 @@ def RegisterAjaxView(request):
# 404 # 404
# return HttpResponse('not ajax') # return HttpResponse('not ajax')
def RegisterReply(request):
if request.GET:
email = request.GET['email']
try:
user = User.objects.get(username=email)
except User.DoesNotExist:
response = {'errors': {'email': _(u'Пользователя с таким email не существует')}}
return HttpResponse(json.dumps(response), content_type='application/json')
if user.is_active:
response = {'errors': {'email': _(u'Пользователя с таким email уже активирован')}}
return HttpResponse(json.dumps(response), content_type='application/json')
else:
try:
registration_profile = user.registrationprofile_set.all()[0]
except IndexError:
registration_profile = RegistrationProfile.create_profile(user)
if Site._meta.installed:
site = Site.objects.get_current()
else:
site = RequestSite(request)
registration_profile.send_activation_email(site)
response = {'success': True}
return HttpResponse(json.dumps(response), content_type='application/json')
else:
return HttpResponse('no data')
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm
from registration.forms import LoginForm from registration.forms import LoginForm
@ -210,6 +240,8 @@ def LoginView(request):
#return HttpResponseRedirect(request.META.get('HTTP_REFERER','/')) #return HttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
else: else:
response={'success':False, 'errors': form.errors} response={'success':False, 'errors': form.errors}
if getattr(form, 'inactive'):
response.update({'inactive': True})
return HttpResponse(json.dumps(response), content_type='application/json') return HttpResponse(json.dumps(response), content_type='application/json')

@ -133,22 +133,26 @@ class LoginForm(AuthenticationForm):
def clean(self): def clean(self):
username = self.cleaned_data.get('username') username = self.cleaned_data.get('username')
password = self.cleaned_data.get('password') password = self.cleaned_data.get('password')
data = self.cleaned_data
if username and password: if username and password:
self.user_cache = authenticate(username=username, self.user_cache = authenticate(username=username,
password=password) password=password)
if self.user_cache is None: if self.user_cache is None:
data = self.cleaned_data
self._errors['password'] = ErrorList([self.error_messages['invalid_login'] % { self._errors['password'] = ErrorList([self.error_messages['invalid_login'] % {
'username': self.username_field.verbose_name 'username': self.username_field.verbose_name
}]) }])
del data['password'] del data['password']
return data
elif not self.user_cache.is_active: elif not self.user_cache.is_active:
raise forms.ValidationError(self.error_messages['inactive']) self._errors['username'] = ErrorList(self.error_messages['inactive'])
self.inactive = True
del data['username']
self.check_for_test_cookie() self.check_for_test_cookie()
return self.cleaned_data return data

Loading…
Cancel
Save