def _get_redirect_url(handler): redirect_url = None if not handler.current_user: logging.debug('not authenticated') redirect_url = handler.settings['login_url'] if "?" not in redirect_url: redirect_url += "?" + utils.unicode_urlencode( dict(next=handler.request.path) ) else: user = handler.current_user logging.debug(user) if not bool(user.sub_level and user.sub_expires > datetime.utcnow()): logging.debug('subscription expired') # log the user out to 'uncache' the authenticated user domain = '.%s' % handler.settings['domain'] next = handler.get_argument('next', '/') handler.clear_cookie('user_id', domain=domain) # send them to spreedly to reenergise their subscription redirect_url = clients.spreedly.get_subscribe_url( int(user.id), config.spreedly['paid_plan_id'], user.login ) return redirect_url
def encode_authentication_data(self, extra_post_data): """Try oauth access_token first, fall back on login + api token. """ if self.access_token: post_data = { "access_token": self.access_token } elif self.username and self.api_token: post_data = { "login": self.username, "token": self.api_token } else: post_data = {} post_data.update(extra_post_data) return utils.unicode_urlencode(post_data)