def authenticate(self, username=None, password=None, **kwargs): users = User.objects.raw( 'SELECT * FROM "User" WHERE email = %s AND password = %s', [username, User.hash(password)]) for user in users: user.is_authenticated = True user.is_anonymous = False return user return None
def register(request): if request.method == 'POST': form = UserForm(request.POST) try: user = form.save(commit=False) except ValueError: request.message = 'There\'s a problem with the information. May be the ' \ 'email is taken or password is not strong enough.' return render( request, 'form.html', { 'form': form, 'message': request.message, 'form_action': '/main/register' }) raw_password = user.password user.password = User.hash(user.password) if user.save(): request.message = 'Successfully registered.' authenticated_user = authenticate(username=user.email, password=raw_password) if authenticated_user is not None: auth.login( request, user=authenticated_user, backend= 'main.authentication_backends.ForsatAuthenticationBackend') return panel(request) else: request.message = 'There\'s a problem with the information. May be the ' \ 'email is taken or password is not strong enough.' else: form = UserForm() if hasattr(request, 'message'): message = request.message else: message = None return render(request, 'form.html', { 'form': form, 'message': message, 'form_action': '/main/register' })