Example #1
0
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)
Example #2
0
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)
Example #3
0
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'))
Example #6
0
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))
Example #7
0
            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,