def logout(request): ''' This view will log out the currently logged in user. * URL Name ``accounts-logout`` * Available Context None. * Template None. ''' from django.contrib.auth import logout logout(request) if request.session.get('authentication'): del request.session['authentication'] request.session['AUTH_LOGGED_OUT'] = True return accounts.post_auth_redirect(request)
def login(request, template_name='signin.html'): if request.GET.get('next', None): request.session['POST_AUTH_URL'] = request.GET.get('next') if 'POST' == request.method: form = LoginForm(data=request.POST) if form.is_valid(): auth.login(request, form.get_user()) if request.session.test_cookie_worked(): request.session.delete_test_cookie() if form.cleaned_data['keep_signed_in']: # Sessions expire in about ten years. request.session.set_expiry(datetime.timedelta(3650)) else: # Session expires when user closes browser. request.session.set_expiry(0) if request.GET.get('ajax'): pass ''' from utils import json return HttpResponse( json.get_json( request, 200, ugettext(u'Login successful.'), dict() ), content_type=json.get_response_mimetype(request) ) ''' else: return accounts.post_auth_redirect(request) else: if request.GET.get('ajax'): pass ''' from utils import json return HttpResponse( json.get_json( request, 403, ugettext(u'Authentication Failed. Access forbidden.'), dict() ), content_type=json.get_response_mimetype(request) ) ''' else: form = LoginForm() context = dict( form=form ) return render_to_response( template_name, context, context_instance=RequestContext(request) )
def authenticate(request): ''' Performs Facebook Connect authentication. * URL Name ``accounts-fbconnect-authenticate`` * Available Context None. * Template None. ''' #import ipdb #ipdb.set_trace() fb = request.facebook user = None if fb.check_session(request): if request.user.is_authenticated(): profile = request.user.get_profile() profile.facebook_id = fb.uid profile.save() user = request.user else: from django.contrib.auth import authenticate, login user = authenticate(fb=fb, request=request) if user is not None: login(request, user) else: return HttpResponseRedirect( url_for_view('accounts-postauthcmd')) user_info = fb.users.getInfo(fb.uid, fields=['first_name', 'pic'])[0] file_url = fb_utils.get_image_fb(user_info['pic']) profile_extension = user.profile_extensions.get() pic_name = file_url.split('/')[-1] profile_extension.picture.save(pic_name, File(open(file_url))) request.session['authentication'] = dict( method='facebook', name=user_info['first_name'], ) return accounts.post_auth_redirect(request) else: return HttpResponseRedirect(url_for_view('accounts-postauthcmd'))
def authenticate(request): ''' Performs Facebook Connect authentication. * URL Name ``accounts-fbconnect-authenticate`` * Available Context None. * Template None. ''' #import ipdb #ipdb.set_trace() fb = request.facebook user = None if fb.check_session(request): if request.user.is_authenticated(): profile = request.user.get_profile() profile.facebook_id = fb.uid profile.save() user = request.user else: from django.contrib.auth import authenticate, login user = authenticate(fb=fb, request=request) if user is not None: login(request, user) else: return HttpResponseRedirect(url_for_view('accounts-postauthcmd')) user_info = fb.users.getInfo(fb.uid, fields=['first_name','pic'])[0] file_url = fb_utils.get_image_fb(user_info['pic']) profile_extension = user.profile_extensions.get() pic_name = file_url.split('/')[-1] profile_extension.picture.save(pic_name,File(open(file_url))) request.session['authentication'] = dict( method='facebook', name=user_info['first_name'], ) return accounts.post_auth_redirect(request) else: return HttpResponseRedirect(url_for_view('accounts-postauthcmd'))
def login(request, template_name='signin.html'): if request.GET.get('next', None): request.session['POST_AUTH_URL'] = request.GET.get('next') if 'POST' == request.method: form = LoginForm(data=request.POST) if form.is_valid(): auth.login(request, form.get_user()) if request.session.test_cookie_worked(): request.session.delete_test_cookie() if form.cleaned_data['keep_signed_in']: # Sessions expire in about ten years. request.session.set_expiry(datetime.timedelta(3650)) else: # Session expires when user closes browser. request.session.set_expiry(0) if request.GET.get('ajax'): return HttpResponse( json.get_json(request, 200, ugettext(u'Login successful.'), dict()), content_type=json.get_response_mimetype(request)) else: return accounts.post_auth_redirect(request) else: if request.GET.get('ajax'): return HttpResponse( json.get_json( request, 403, ugettext(u'Authentication Failed. Access forbidden.'), dict()), content_type=json.get_response_mimetype(request)) else: form = LoginForm() context = dict(form=form) return render_to_response(template_name, context, context_instance=RequestContext(request))
return render_to_response( 'accounts/twitter_error.html', dict(twitter_error_message=unicode(e)), context_instance=RequestContext(request) ) if user is not None: django_login(request, user) else: return HttpResponseRedirect(url_for_view('accounts-postauthcmd')) request.session['authentication'] = dict( method='twitter', name=u'@%s' % credentials.screen_name, ) return accounts.post_auth_redirect(request) def get_twitter_client(): if hasattr(_thread_locals, 'twitter'): return _thread_locals.twitter else: return None class TwitterClientMiddleware(object): def process_request(self, request): if request.session.get('authentication') and 'twitter' == request.session['authentication']['method']: import cgi access_token = cgi.parse_qs(request.user.get_profile().twitter_access_token) auth = tweepy.OAuthHandler( settings.TWITTER_CONSUMER_KEY,