Exemple #1
0
 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
Exemple #2
0
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'
    })