summaryrefslogtreecommitdiffstats
path: root/fbconnect/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'fbconnect/views.py')
-rw-r--r--fbconnect/views.py112
1 files changed, 0 insertions, 112 deletions
diff --git a/fbconnect/views.py b/fbconnect/views.py
deleted file mode 100644
index 91ea757a..00000000
--- a/fbconnect/views.py
+++ /dev/null
@@ -1,112 +0,0 @@
-from django.shortcuts import render_to_response as render
-from django.template import RequestContext
-from django.http import HttpResponseRedirect
-from django.utils.safestring import mark_safe
-from django.core.urlresolvers import reverse
-from django.contrib.auth.models import User
-from django.contrib.auth import login, logout
-from models import FBAssociation
-from forum.forms import SimpleEmailSubscribeForm
-from django.conf import settings
-
-import fb
-import forms
-
-import logging
-
-def signin(request, newquestion = False, newanswer = False):
- logging.debug('')
- state, context = fb.get_user_state(request)
-
- if state == fb.STATES['FIRSTTIMER']:
- logging.debug('FB state = FIRSTTIMER')
- if newquestion:
- register_url = 'fb_user_register_new_question'
- elif newanswer:
- register_url = 'fb_user_register_new_answer'
- else:
- register_url = 'fb_user_register'
- return HttpResponseRedirect(reverse(register_url))
- elif state == fb.STATES['RETURNINGUSER']:
- logging.debug('FB state = RETURNINGUSER')
- return login_and_forward(request, context, newquestion, newanswer)
- elif state == fb.STATES['SESSIONEXPIRED']:
- logging.debug('FB state = SESSIONEXPIRED')
- response = logout(request, next_page=reverse('index'))
- fb.delete_cookies(response)
- return response
-
- return HttpResponseRedirect(reverse('index'))
-
-def register(request, newquestion = False, newanswer = False):
- logging.debug('')
- state, context = fb.get_user_state(request)
-
- if state == fb.STATES['FIRSTTIMER']:
- logging.debug('FB FIRSTTIMER - try to register locally')
- logging.debug('request method is %s' % request.method)
- if request.method == 'POST' and 'bnewaccount' in request.POST:
- form1 = forms.FBConnectRegisterForm(request.POST)
- email_feeds_form = SimpleEmailSubscribeForm(request.POST)
-
- if (form1.is_valid() and email_feeds_form.is_valid()):
- tmp_pwd = User.objects.make_random_password()
- user_ = User.objects.create_user(form1.cleaned_data['username'],
- form1.cleaned_data['email'], tmp_pwd)
-
- user_.set_unusable_password()
- logging.debug('created new internal user %s' % form1.cleaned_data['username'])
-
- uassoc = FBAssociation(user=user_, fbuid=context['uid'])
- uassoc.save()
- logging.debug('created new user association')
-
- email_feeds_form.save(user_)
-
- return login_and_forward(request, user_, newquestion, newanswer)
- else:
- logging.debug('form user input is invalid')
- else:
- form1 = forms.FBConnectRegisterForm(initial={
- 'next': '/',
- 'username': context['name'],
- 'email': '',
- })
- email_feeds_form = SimpleEmailSubscribeForm()
-
- return render('authopenid/complete.html', {
- 'form1': form1,
- 'email_feeds_form': email_feeds_form,
- 'provider':mark_safe('facebook'),
- 'login_type':'facebook',
- 'gravatar_faq_url':reverse('faq') + '#gravatar',
- }, context_instance=RequestContext(request))
- else:
- logging.debug('not a FIRSTTIMER --> redirect to index view')
- return HttpResponseRedirect(reverse('index'))
-
-def login_and_forward(request, user, newquestion = False, newanswer = False):
- old_session = request.session.session_key
- user.backend = "django.contrib.auth.backends.ModelBackend"
- logging.debug('attached auth.backends.ModelBackend to this FB user')
- login(request, user)
- logging.debug('user logged in!')
-
- from forum.models import signals#todo: move to authentication app
- signals.user_logged_in.send(user=user,session_key=old_session,sender=None)
- logging.debug('user_logged_in signal sent')
-
- if (newquestion):
- from forum.models import Question
- question = Question.objects.filter(author=user).order_by('-added_at')[0]
- logging.debug('redirecting to newly posted question')
- return HttpResponseRedirect(question.get_absolute_url())
-
- if (newanswer):
- from forum.models import Answer
- answer = Answer.objects.filter(author=user).order_by('-added_at')[0]
- logging.debug('redirecting to newly posted answer')
- return HttpResponseRedirect(answer.get_absolute_url())
-
- logging.debug('redirecting to front page')
- return HttpResponseRedirect('/')