class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = { "user_bundle": self.user_bundle } self.response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, target_url="/"): if not self.user_bundle.user: return self.redirect( self.user_bundle.create_login_url(target_url), abort=True ) def _require_registration(self, target_url="/"): if not self.user_bundle.account.registered: return self.redirect( target_url, abort=True )
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = {"user_bundle": self.user_bundle} self.response.headers[ 'Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, target_url="/"): if not self.user_bundle.user: return self.redirect(self.user_bundle.create_login_url(target_url), abort=True) def _require_registration(self, target_url="/"): if not self.user_bundle.account.registered: return self.redirect(target_url, abort=True)
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = { "user_bundle": self.user_bundle } self.response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' self.response.headers['Vary'] = 'Accept-Encoding' def _get_login_url(self, target_url): return self.user_bundle.create_login_url(target_url) def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, redirect_url=None): import urllib if not self.user_bundle.user: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/login_required?redirect={}'.format(urllib.quote(redirect_url)), abort=True ) def _require_permission(self, permission): self._require_registration() if permission not in self.user_bundle.account.permissions: return self.redirect( "/", abort=True ) def _require_registration(self, redirect_url=None): import urllib self._require_login() if not self.user_bundle.account.registered: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/register?redirect={}'.format(urllib.quote(redirect_url)), abort=True )
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = {"user_bundle": self.user_bundle} self.response.headers[ 'Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' self.response.headers['Vary'] = 'Accept-Encoding' def _get_login_url(self, target_url): return self.user_bundle.create_login_url(target_url) def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, redirect_url=None): import urllib if not self.user_bundle.user: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect('/account/login_required?redirect={}'.format( urllib.quote(redirect_url)), abort=True) def _require_permission(self, permission): self._require_registration() if permission not in self.user_bundle.account.permissions: return self.redirect("/", abort=True) def _require_registration(self, redirect_url=None): import urllib self._require_login() if not self.user_bundle.account.registered: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect('/account/register?redirect={}'.format( urllib.quote(redirect_url)), abort=True)
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = {"user_bundle": self.user_bundle} def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, target_url="/"): if not self.user_bundle.user: return self.redirect(self.user_bundle.create_login_url(target_url), abort=True)
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) self.user_bundle = UserBundle() self.template_values = { "user_bundle": self.user_bundle } def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, target_url="/"): if not self.user_bundle.user: return self.redirect( self.user_bundle.create_login_url(target_url), abort=True )
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) if type(self.request) == webapp2.Request: trace_context.request = self.request self.user_bundle = UserBundle() self.template_values = { "user_bundle": self.user_bundle } self.response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' self.response.headers['Vary'] = 'Accept-Encoding' self.response.headers['X-Robots-Tag'] = 'noindex' def _get_login_url(self, target_url): return self.user_bundle.create_login_url(target_url) def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, redirect_url=None): import urllib if not self.user_bundle.user: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/login_required?redirect={}'.format(urllib.quote(redirect_url)), abort=True ) def _require_permission(self, permission): self._require_registration() if permission not in self.user_bundle.account.permissions: return self.redirect( "/", abort=True ) def _require_registration(self, redirect_url=None): import urllib self._require_login() if not self.user_bundle.account.registered: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/register?redirect={}'.format(urllib.quote(redirect_url)), abort=True ) def _require_team_admin_access(self, team_number, redirect_url=None): self._require_login(redirect_url) if self.user_bundle.is_current_user_admin: # Admins have this granted return user = self.user_bundle.account.key now = datetime.datetime.now() existing_access = existing_access = TeamAdminAccess.query( TeamAdminAccess.account == user, TeamAdminAccess.team_number == team_number, TeamAdminAccess.expiration > now).fetch() if not existing_access: return self.abort(403) def _require_request_user_is_bundle_user(self): current_user_account_id = self.user_bundle.account.key.id() target_account_id = self.request.get('account_id') if not target_account_id: return self.abort(403) if target_account_id != current_user_account_id: return self.abort(403)
class LoggedInHandler(webapp2.RequestHandler): """ Provides a base set of functionality for pages that need logins. Currently does not support caching as easily as CacheableHandler. """ def __init__(self, *args, **kw): super(LoggedInHandler, self).__init__(*args, **kw) if type(self.request) == webapp2.Request: trace_context.request = self.request self.user_bundle = UserBundle() self.template_values = { "user_bundle": self.user_bundle } self.response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate' self.response.headers['Pragma'] = 'no-cache' self.response.headers['Expires'] = '0' self.response.headers['Vary'] = 'Accept-Encoding' self.response.headers['X-Robots-Tag'] = 'noindex' def _get_login_url(self, target_url): return self.user_bundle.create_login_url(target_url) def _require_admin(self): self._require_login() if not self.user_bundle.is_current_user_admin: return self.redirect(self.user_bundle.login_url, abort=True) def _require_login(self, redirect_url=None): import urllib if not self.user_bundle.user: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/login_required?redirect={}'.format(urllib.quote(redirect_url)), abort=True ) def _require_permission(self, permission): self._require_registration() if permission not in self.user_bundle.account.permissions: return self.redirect( "/", abort=True ) def _require_registration(self, redirect_url=None): import urllib self._require_login() if not self.user_bundle.account.registered: if not redirect_url: redirect_url = self.request.get('redirect') if not redirect_url: redirect_url = self.request.url return self.redirect( '/account/register?redirect={}'.format(urllib.quote(redirect_url)), abort=True ) def _require_team_admin_access(self, team_number, redirect_url=None): self._require_login(redirect_url) if self.user_bundle.is_current_user_admin: # Admins have this granted return user = self.user_bundle.account.key now = datetime.datetime.now() existing_access = existing_access = TeamAdminAccess.query( TeamAdminAccess.account == user, TeamAdminAccess.team_number == team_number, TeamAdminAccess.expiration > now).fetch() if not existing_access: return self.abort(403)