示例#1
0
def facebook_connect_exist(request):
    profile = request.session.get('facebook_profile', None)

    if not profile:
        return redirect('/')

    if request.method == 'POST':
        form = FacebookBindingForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']

            user = auth.authenticate(username=username, password=password)

            # create facebook profile
            fbprofile = FacebookProfile()
            fbprofile.uid = profile['id']
            fbprofile.user = user
            fbprofile.name = profile['name']
            fbprofile.gender = profile.get('gender', 'male')
            fbprofile.locale = profile['locale']
            fbprofile.url = profile['link']
            fbprofile.timezone = profile.get('timezone', '')
            fbprofile.verified = profile.get('verified', False)
            fbprofile.created_at = datetime.now()
            fbprofile.save()

            if user:
                auth.login(request, user)

            request.session['fb_connect_type'] = 'exist'
            return redirect('member-facebook-connect-done')
    else:
        form = FacebookBindingForm()

    return render(request, 'member/facebook/exist.html', {'form': form, 'profile': profile})