예제 #1
0
def get_site_auth():
    """Return auth handler for site API object"""

    # First check for basic auth credentials
    twitter_user = get_setting('TWITTER_SITE_USER')
    twitter_pass = get_setting('TWITTER_SITE_PASS')
    if twitter_user and twitter_pass:
        return BasicAuthHandler(twitter_user, twitter_pass)

    # If no basic, check for OAuth
    consumer_token, consumer_secret = get_consumer_creds()
    oauth_token = get_setting('TWITTER_SITE_OAUTHTOKEN')
    oauth_secret = get_setting('TWITTER_SITE_OAUTHSECRET')
    if consumer_token and consumer_secret and oauth_token and oauth_secret:
        auth = OAuthHandler(consumer_token, consumer_secret)
        auth.set_access_token(oauth_token, oauth_secret)
        return auth
예제 #2
0
    def process_view(self, request, view_func, view_args, view_kargs):
        """
        If this view requires twitter authorization,
        make sure this user has granted it. If not redirect
        to the twitter authorization URL.
        """
        if hasattr(view_func, 'twitter_auth_required') and \
                view_func.twitter_auth_required:
            # Make sure AuthenticationMiddlware is installed
            if not hasattr(request, 'user'):
                raise ImproperlyConfigured(
                    "TwitterMiddlware requires AuthenticationMiddleware "
                    "in order to enforce the twitter_auth_required decorator.")

            if request.user.twitter.auth is None:
                return redirect(get_setting('TWITTER_AUTH_URL'))
예제 #3
0
def get_consumer_creds():
    """Return consumer OAuth credentials"""
    return get_setting('TWITTER_CONSUMER_TOKEN'), \
            get_setting('TWITTER_CONSUMER_SECRET')