def __call__(self, environ, start_response): """Invoke the Controller""" # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() for cookie in request.cookies: # Remove the ckan session cookie if not used e.g. logged out if cookie == "ckan" and not c.user: # Check session for valid data (including flash messages) # (DGU also uses session for a shopping basket-type behaviour) is_valid_cookie_data = False for key, value in session.items(): if not key.startswith("_") and value: is_valid_cookie_data = True break if not is_valid_cookie_data: if session.id: self.log.debug("No valid session data - " "deleting session") self.log.debug("Session: %r", session.items()) session.delete() else: self.log.debug("No session id - " "deleting session cookie") response.delete_cookie(cookie) # Remove auth_tkt repoze.who cookie if user not logged in. elif cookie == "auth_tkt" and not session.id: response.delete_cookie(cookie) return res
def session_info(self): """ Display session values for testing purposes. """ ret = "" items = session.items() items.sort() for key, value in items: ret += "%s => %s\n" % (key, value) return ret
def __call__(self, environ, start_response): """Invoke the Controller""" # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() # Clean out any old cookies as they may contain api keys etc # This also improves the cachability of our pages as cookies # prevent proxy servers from caching content unless they have # been configured to ignore them. for cookie in request.cookies: if cookie.startswith('ckan') and cookie not in ['ckan']: response.delete_cookie(cookie) # Remove the ckan session cookie if not used e.g. logged out elif cookie == 'ckan' and not c.user: # Check session for valid data (including flash messages) # (DGU also uses session for a shopping basket-type behaviour) is_valid_cookie_data = False for key, value in session.items(): if not key.startswith('_') and value: is_valid_cookie_data = True break if not is_valid_cookie_data: if session.id: if not session.get('lang'): self.log.debug( 'No session data any more - deleting session') self.log.debug('Session: %r', session.items()) session.delete() else: response.delete_cookie(cookie) self.log.debug( 'No session data any more - deleting session cookie' ) # Remove auth_tkt repoze.who cookie if user not logged in. elif cookie == 'auth_tkt' and not session.id: response.delete_cookie(cookie) return res
def __call__(self, environ, start_response): """Invoke the Controller""" # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() # Clean out any old cookies as they may contain api keys etc # This also improves the cachability of our pages as cookies # prevent proxy servers from caching content unless they have # been configured to ignore them. for cookie in request.cookies: if cookie.startswith('ckan') and cookie not in ['ckan']: response.delete_cookie(cookie) # Remove the ckan session cookie if not used e.g. logged out elif cookie == 'ckan' and not c.user: # Check session for valid data (including flash messages) # (DGU also uses session for a shopping basket-type behaviour) is_valid_cookie_data = False for key, value in session.items(): if not key.startswith('_') and value: is_valid_cookie_data = True break if not is_valid_cookie_data: if session.id: if not session.get('lang'): self.log.debug('No session data any more - ' 'deleting session') self.log.debug('Session: %r', session.items()) session.delete() else: response.delete_cookie(cookie) self.log.debug('No session data any more - ' 'deleting session cookie') # Remove auth_tkt repoze.who cookie if user not logged in. elif cookie == 'auth_tkt' and not session.id: response.delete_cookie(cookie) return res
def __call__(self, environ, start_response): """Invoke the Controller""" # WSGIController.__call__ dispatches to the Controller method # the request is routed to. This routing information is # available in environ['pylons.routes_dict'] try: res = WSGIController.__call__(self, environ, start_response) finally: model.Session.remove() for cookie in request.cookies: # Remove the ckan session cookie if not used e.g. logged out if cookie == 'ckan' and not c.user: # Check session for valid data (including flash messages) # (DGU also uses session for a shopping basket-type behaviour) is_valid_cookie_data = False for key, value in session.items(): if not key.startswith('_') and value: is_valid_cookie_data = True break if not is_valid_cookie_data: if session.id: if not session.get('lang'): self.log.debug('No session data any more - ' 'deleting session') self.log.debug('Session: %r', session.items()) session.delete() else: response.delete_cookie(cookie) self.log.debug('No session data any more - ' 'deleting session cookie') # Remove auth_tkt repoze.who cookie if user not logged in. elif cookie == 'auth_tkt' and not session.id: response.delete_cookie(cookie) return res