예제 #1
0
    def get(self, request, key):
        verification_key_object = get_object_or_404(VerificationKey, key=key)
        if not verification_key_object.is_valid:
            message = u'Ссылка недействительна, попробуйте получить новую.'
            return self.render_to_response({'message': message})
        user = verification_key_object.user
        if not user.is_active:
            message = u'Пользователь был заблокирован, подтверждение почты невозможно.'
            return self.render_to_response({'message': message})
        if get_user_by_email(user.email):
            message = u'Адрес, который вы пытаетесь подтвердить уже зарегистрирован и подтвержден.'
            return self.render_to_response({'message': message})
        else:
            verification_key_object.unused = False
            verification_key_object.save()
            profile = user.get_profile()
            profile.email_verified = True
            profile.save()
            message = u'Адрес электронной почты %s подтвержден!' % user.email
            messages.info(request, message)

            if user.is_active:
                backend = get_backends()[1]
                user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__)
                login(request, user)

            return HttpResponseRedirect(reverse('frontpage'))
예제 #2
0
 def authenticate(self, username=None, password=None):
     #If username is an email address, then try to pull it up
     if email_re.search(username):
         user = get_user_by_email(username)
         if user:
             if user.check_password(password):
                 return user
         else:
             return None
예제 #3
0
 def clean_email(self):
     email = self.cleaned_data.get('email')
     if email:
         user = get_user_by_email(email)
         if not user:
             raise forms.ValidationError(u'''Нет пользователя с 
                 таким адресом электронной почты или адрес не подтвержден''')
         else:
             self.user_with_email = user
     return self.cleaned_data