def social_reconnect(request, provider): user = request.user userprofile = UserProfile.objects.get(user=user) if user: if provider == 'facebook': userprofile.facebook_connect = True userprofile = userprofile.save() connected = check_facebook_connection(user) if not connected: if user.password != USERSOCIALAUTH_PASS: try: fb_auth = UserSocialAuth.objects.get(user=user, provider='facebook') fb_auth.delete() except UserSocialAuth.DoesNotExist: pass redirect_url = 'http://%s%s' % (request.META['HTTP_HOST'], reverse('facebook_connect')) url = "https://graph.facebook.com/oauth/authorize?client_id" \ "=%s&scope=offline_access,publish_stream&redirect_uri=%s" url = url % (settings.FACEBOOK_APP_ID, redirect_url) return HttpResponseRedirect(url) elif provider == 'twitter': userprofile.twitter_connect = True userprofile = userprofile.save() connected = check_twitter_connection(user) if not connected: try: social_auth = UserSocialAuth.objects.get(user=user, provider='twitter') social_auth.delete() except UserSocialAuth.DoesNotExist: pass return twitter_get_auth_url(request) else: return HttpResponseRedirect(reverse('account_info')) return HttpResponseRedirect(reverse('account_info'))
def social_reconnect(request, provider): user = request.user userprofile = UserProfile.objects.get(user=user) if user: if provider == 'facebook': userprofile.facebook_connect = True userprofile = userprofile.save() connected = check_facebook_connection(user) if not connected: if user.password != USERSOCIALAUTH_PASS: try: fb_auth = UserSocialAuth.objects.get( user=user, provider='facebook') fb_auth.delete() except UserSocialAuth.DoesNotExist: pass redirect_url = 'http://%s%s' % (request.META['HTTP_HOST'], reverse('facebook_connect')) url = "https://graph.facebook.com/oauth/authorize?client_id" \ "=%s&scope=offline_access,publish_stream&redirect_uri=%s" url = url % (settings.FACEBOOK_APP_ID, redirect_url) return HttpResponseRedirect(url) elif provider == 'twitter': userprofile.twitter_connect = True userprofile = userprofile.save() connected = check_twitter_connection(user) if not connected: try: social_auth = UserSocialAuth.objects.get( user=user, provider='twitter') social_auth.delete() except UserSocialAuth.DoesNotExist: pass return twitter_get_auth_url(request) else: return HttpResponseRedirect(reverse('account_info')) return HttpResponseRedirect(reverse('account_info'))
def account_info(request, premium=False, template="account_info.html"): """ Displays the user's account information. Also updates logged in user's Twitter and Facebook connections. """ user = request.user userprofile = user.userprofile provider_list = [] try: oauth_user = UserSocialAuth.objects.get(user=user) multiple_providers = False except UserSocialAuth.DoesNotExist: oauth_user = None multiple_providers = False except UserSocialAuth.MultipleObjectsReturned: oauth_user = UserSocialAuth.objects.filter(user=user) for oauthuser in oauth_user: provider_list.append(oauthuser.provider) multiple_providers = True # Check if twitter connection exists, # If not then sets twitter connection to false if userprofile and userprofile.twitter_connect: connected = check_twitter_connection(user) if not connected: userprofile.twitter_connect = False userprofile = userprofile.save() try: twit_auth = UserSocialAuth.objects.get(user=user, provider='twitter') twit_auth.delete() except UserSocialAuth.DoesNotExist: pass # Check if facebook connection exists, # If not then sets facebook connection to false if userprofile and userprofile.facebook_connect: connected = check_facebook_connection(user) if not connected: userprofile.facebook_connect = False userprofile = userprofile.save() if user.password != USERSOCIALAUTH_PASS: try: fb_auth = UserSocialAuth.objects.get(user=user, provider='facebook') fb_auth.delete() except UserSocialAuth.DoesNotExist: pass # Get popup information info = {} popup = PopUpInformation.objects.all() for po in popup: info[po.html_id] = po.message context = { 'popupinfo': info, 'oauth_user': oauth_user, 'userprofile': userprofile, 'provider_list': provider_list, 'multiple_providers': multiple_providers, 'FACEBOOK_APPLICATION_ID': settings.FACEBOOK_APP_ID, 'premium': premium, } return render(request, template, context)