Esempio n. 1
0
def assoc_with_curr_user(request):
    code = request.GET.get('code', '')
    if code:
        try:
            uid = fb_utils.get_userid(code, assoc_with_curr_user)
            matches = FBProfile.objects.filter(fb_userid=uid).count()
            if matches:
                messages.error(request, "This facebook is already " +\
                        "associated with an account on LitHub")
                return redirect('bookswap.views.my_account')
            try:
                profile = FBProfile.objects.get(user=request.user)
            except ObjectDoesNotExist:
                profile = FBProfile(user=request.user)
            profile.fb_userid = uid
            profile.save()
            messages.success(request, "LitHub now recognizes your " +\
                    "facebook account.")
            return redirect('bookswap.views.my_account')
        except ValueError:
            return render(request, "fbconnect/code_error.html")
    else:
        messages.error(request, "There was an error getting your " +\
            "information from facebook.")
    return redirect('django.contrib.auth.views.login')
Esempio n. 2
0
def register(request, code):
    try:
        acc_tok = fb_utils.get_access_token(code)
        networks = fb_utils.get_networks(acc_tok)
        k = False
        for network in networks:
            if str(network['nid']) == '16777626':
                k = True
                break
        if not k:
            messages.error(request, "You need to be in the Kalamazoo "+\
                "College network to register using facebook.")
            return redirect('registration.views.register')
        form = FBRegisterForm()
        if request.method == 'POST':
            form = FBRegisterForm(request.POST)
            if form.is_valid():
                user_info = fb_utils.get_basic_info(acc_tok)
                new_user = User.objects.create_user(
                        form.cleaned_data['username'], 
                        user_info['email'])
                new_user.first_name = user_info['first_name']
                new_user.last_name = user_info['last_name']
                new_user.is_active = True
                new_user.save()
                fbp = FBProfile(user=new_user, fb_userid=user_info['id'])
                fbp.save()
                messages.success(request, "Your account has been created!")
                return redirect('bookswap.views.my_account')
        return render(request, "fbconnect/register.html", 
                {'form':form})
    except ValueError:
        return render(request, "fbconnect/code_error.html")
Esempio n. 3
0
def assoc_with_curr_user(request):
    try:
        fb = fb_utils.FBConnect(request.GET.get('code', ''),
                assoc_with_curr_user)
        uid = fb.userid
        matches = FBProfile.objects.filter(fb_userid=uid).count()
        if matches:
            messages.error(request, "Your facebook account is already " +\
                    "associated with another account on LitHub")
            return redirect('bookswap.views.my_account')
        try:
            profile = FBProfile.objects.get(user=request.user)
        except ObjectDoesNotExist:
            profile = FBProfile(user=request.user)
        profile.fb_userid = uid
        profile.save()
        messages.success(request, "LitHub now recognizes your " +\
                "facebook account.")
    except ValueError:
        messages.error(request, "There was an error getting your " +\
            "information from facebook.")
    return redirect('bookswap.views.my_account')
Esempio n. 4
0
def register(request, access_token):
    try:
        fb = fb_utils.FBConnect(access_token=access_token)
        user = authenticate(fb_uid=fb.userid)
        if user:
            return redirect("bookswap.views.my_account")
        networks = fb.networks
        k = False
        for network in networks:
            if str(network['nid']) == '16777626':
                k = True
                break
        if k:
            createform = FBRegisterForm()
        else:
            createform = FBRegisterVerifyForm()
        loginform = AuthenticationForm()
        if request.method == 'POST':
            action = request.POST.get('action', '')
            if k and action == "createnew":
                createform = FBRegisterForm(request.POST)
                if createform.is_valid():
                    user_info = fb.basic_info
                    new_user = User.objects.create_user(
                            createform.cleaned_data['username'], 
                            user_info['email'])
                    new_user.first_name = user_info['first_name']
                    new_user.last_name = user_info['last_name']
                    new_user.is_active = True
                    new_user.set_unusable_password()
                    new_user.save()
                    fbp = FBProfile(user=new_user, fb_userid=user_info['id'])
                    fbp.save()
                    messages.success(request, "Your account has been created!")
                    user = authenticate(fb_uid=fbp.fb_userid)
                    request.session['fb_at'] = fb.access_token
                    if user and user.is_active:
                        login(request, user)
                    return redirect('bookswap.views.my_account')
            if (not k) and action == "createnew":
                createform = FBRegisterVerifyForm(request.POST)
                if createform.is_valid():
                    from bookswap.kregform import KzooRegistrationBackend
                    user_info = fb.basic_info
                    backend = KzooRegistrationBackend()
                    new_user = backend.register(request,
                            username=createform.cleaned_data['username'],
                            email=createform.cleaned_data['email'],
                            password1=None,
                            first_name=user_info['first_name'],
                            last_name=user_info['last_name'])
                    new_user.set_unusable_password()
                    new_user.save()
                    fbp = FBProfile(user=new_user, fb_userid=user_info['id'])
                    fbp.save()
                    messages.success(request, "An email has been sent to your "
                        "account. Once you confirm your account, you will be "
                        "able to log in.")
                    return redirect('bookswap.views.my_account')
            elif action == "associate":
                loginform = AuthenticationForm(data=request.POST)
                if loginform.is_valid():
                    user = loginform.get_user()
                    login(request, user)
                    try:
                        user.fbprofile
                        messages.error(request, "You are already connected to "
                            "a facebook account. If you are trying to connect "
                            "a different facebook account, please dissociate "
                            "your LitHub and facebook accounts.")
                        return redirect('bookswap.views.my_account')
                    except ObjectDoesNotExist:
                        pass 
                    fbp = FBProfile(user=user,fb_userid=fb.basic_info['id'])
                    fbp.save()
                    request.session['fb_at'] = fb.access_token
                    messages.success(request, "Your account is now connected "
                            "to your Facebook account!")
                    return redirect('bookswap.views.my_account')
        template = {True:"register.html", False:"register_verify.html"}
        return render(request, "fbconnect/%s"%template[k], 
                {'createform':createform, "loginform":loginform})
    except ValueError:
        return render(request, "fbconnect/code_error.html")