Exemple #1
0
    def _add_association(self, request, access_token):
        """
        Adds an association for `access_token` to `request.user`.

        Returns an HttpResponse.
        """
        success_url = get_success_url(request=request)
        if success_url is None:
            success_url = login_redirect_url()
        try:
            self._associate(request, access_token)
        except UserAlreadyLinked:
            return HttpResponseRedirect(
                update_qs(success_url, {
                    'error': 'user_already_linked',
                    'user': request.user.username
                }))
        except TwitterAlreadyLinked:
            userinfo = cached_user_info(request, access_token)
            return HttpResponseRedirect(
                update_qs(
                    success_url, {
                        'error': 'twitter_already_linked',
                        'user': userinfo.screen_name
                    }))
        return HttpResponseRedirect(success_url)
    def _add_association(self, request, access_token):
        """
        Adds an association for `access_token` to `request.user`.

        Returns an HttpResponse.
        """
        success_url = get_success_url(request=request)
        if success_url is None:
            success_url = login_redirect_url()
        try:
            self._associate(request, access_token)
        except UserAlreadyLinked:
            return HttpResponseRedirect(
                update_qs(success_url,
                          {'error': 'user_already_linked',
                           'user': request.user.username})
            )
        except TwitterAlreadyLinked:
            userinfo = cached_user_info(request, access_token)
            return HttpResponseRedirect(
                update_qs(success_url,
                          {'error': 'twitter_already_linked',
                           'user': userinfo.screen_name})
            )
        return HttpResponseRedirect(success_url)
Exemple #3
0
    def _login_and_redirect(self, request, user):
        """
        Login `user` with `access_token` and redirects to `success_url`.

        `success_url` was the URL provided to OAuthTwitter.signin().

        If the `request.user` is already logged in, don't clobber the
        login with `user`.  The `request.user` has to log out first.
        """
        if user is None:
            return self._redirect_to_login(request=request)
        if request.user.is_anonymous():
            # Login
            self._login(request, user)
            # Update the access_token
            twitter = user.twitter
            save = False
            if twitter.update_access_token(request.twitter_access_token):
                save = True
            if twitter.update_userinfo(request.twitter_userinfo):
                save = True
            if save:
                twitter.save()
            # Redirect
            success_url = get_success_url(request)
            if success_url is not None:
                return HttpResponseRedirect(success_url)
        return self._redirect_to_home(request=request)
    def _login_and_redirect(self, request, user):
        """
        Login `user` with `access_token` and redirects to `success_url`.

        `success_url` was the URL provided to OAuthTwitter.signin().

        If the `request.user` is already logged in, don't clobber the
        login with `user`.  The `request.user` has to log out first.
        """
        if user is None:
            return self._redirect_to_login(request=request)
        if request.user.is_anonymous():
            # Login
            self._login(request, user)
            # Update the access_token
            twitter = user.twitter
            save = False
            if twitter.update_access_token(request.twitter_access_token):
                save = True
            if twitter.update_userinfo(request.twitter_userinfo):
                save = True
            if save:
                twitter.save()
            # Redirect
            success_url = get_success_url(request)
            if success_url is not None:
                return HttpResponseRedirect(success_url)
        return self._redirect_to_home(request=request)