Example #1
0
def dologin(request):
    if 'email' not in request.POST and 'password' not in request.POST:
        data = {'success':False, 'error_id': 1, 'error_msg': 'Login data not set'}
        return HttpResponse(json.dumps(data), 'application/json')

    email = request.POST['email']
    password = request.POST['password']

    try:
        user = User.objects.get(email=email)
    except:
        data = {'success':False, 'error_id':3, 'error_msg':'Account does not exist'}
        return HttpResponse(json.dumps(data), 'application/json')



    try:
        user_login = UserLogin.objects.get(user_id=user.id)
    except:
        return render_json({'success': False, 'error_id': 4, 'error_msg':'User login doesnt exist'})

    salt = user_login.salt


    from alloy.modules.password_encryption import hash_password

    hashed_password = hash_password(password,salt)

    if user_login.password == hashed_password:

        #check if this user has a user_token
        try:
            user_token = UserToken.objects.get(user_id=user.id)
        except:
            try:
                user_token = UserToken.objects.create(user_id=user.id, token=get_random_token(), expires_at=current_datetime())
            except:
                print traceback.print_exc()


        #user has successfully logged in
        request.session['user'] = user

        return render_json({'success':True, 'user': model_to_dict(user)})
    else:
        #user login failed
        data = {'success':False, 'error_id':4, 'error_msg':'Invalid login'}
        return HttpResponse(json.dumps(data), 'application/json')
Example #2
0
def dosignup(request):

    if 'user_name' not in request.POST or 'email' not in request.POST or 'password' not in request.POST:
        data = {'success': False, 'error_id': 1, 'error_msg': 'Data is not set'}
        return HttpResponse(json.dumps(data), 'application/json')




    user_name = request.POST['user_name']
    email = request.POST['email']
    password = request.POST['password']
    print ":???"

    try:
        from alloy.modules.password_encryption import salt, hash_password

        new_salt = salt()
        hashed_password = hash_password(password,new_salt)

        token = salt()

        new_user = User.objects.create(name=user_name, email=email)


        user_login = UserLogin.objects.create(user_id=new_user.id, password=hashed_password, salt=new_salt)

        user_token = UserToken.objects.create(user_id=new_user.id, token=token, expires_at=datetime.datetime.utcnow())


        request.session['user'] = new_user




        create_default_alert_setting(new_user.id)




        return render_json({'success': True, 'user': model_to_dict(new_user)})

    except:
        print traceback.print_exc()
        data = {'success': False, 'error_id': 2, 'error_msg': 'Error creating user', 'post': request.POST}
        return HttpResponse(json.dumps(data), 'application/json')