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
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'))
def get_consumer_creds(): """Return consumer OAuth credentials""" return get_setting('TWITTER_CONSUMER_TOKEN'), \ get_setting('TWITTER_CONSUMER_SECRET')