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})
def facebook_connect_new(request): profile = request.session.get('facebook_profile', None) if not profile: return redirect('/') if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): user_temp = form.save(commit=False) user_temp.post_code = request.POST['zipcode'] user_temp.county = request.POST['county'] user_temp.district = request.POST['district'] user_temp.save() # create user user = User.objects.create_user(user_temp.username, profile['email'], user_temp.password) user.first_name = user_temp.first_name user.last_name = user_temp.last_name user.save() # user profile user_profile = UserProfile( user = user, gender = user_temp.gender, phone = user_temp.phone, birthday = user_temp.birthday, county = user_temp.county, district = user_temp.district, country = user_temp.country, post_code = user_temp.post_code, address = user_temp.address, ) user_profile.save() # facebook profile fbprofile = FacebookProfile( uid = profile['id'], user = user, name = profile.get('name', ''), gender = profile.get('gender', 'male'), locale = profile['locale'], url = profile['link'], timezone = profile.get('timezone', ''), verified = profile.get('verified', False), created_at = datetime.now() ) fbprofile.save() # login user user = auth.authenticate(username=user.username, password=user_temp.password) auth.login(request, user) user_temp.delete() request.session['fb_connect_type'] = 'new' return redirect('member-facebook-connect-done') else: username = profile.get('username', '') birthday = profile.get('birthday', None) if birthday: birthday = birthday.split('/') birthday = birthday[2] + '/' + birthday[0] + '/' + birthday[1] gender = profile.get('gender', 0) first_name = profile.get('first_name', '') last_name = profile.get('last_name', '') email = profile.get('email', '') form = RegisterForm(initial={ 'username': username, 'birthday': birthday, 'gender': gender, 'first_name': first_name, 'last_name': last_name, 'email': email, }) return render(request, 'member/facebook/new.html', {'profile': profile, 'form': form})