def terminate(self): """ Kills the session. @return: None """ SessionManager.terminate_session(self)
def _fetch_session(self, session_id, cookies_enabled): session = None if session_id: session = SessionManager.fetch_session(session_id) if session is not None: context.session = session context.user = _db.get_item(context.session.userid) context.request.serverVariables["AUTH_USER"] = \ context.user.displayName.value if not cookies_enabled: if not session.sessionid in context.request.SCRIPT_NAME: context.request.serverVariables['SCRIPT_NAME'] += \ '/{%s}' % session.sessionid else: lstScript = context.request.SCRIPT_NAME.split('/') context.request.serverVariables['SCRIPT_NAME'] = \ '/%s/{%s}' % (lstScript[1], session.sessionid) else: # create guest session guest_id = settings['sessionmanager']['guest'] context.user = _db.get_item(guest_id) new_session = SessionManager.create(guest_id) session_id = new_session.sessionid if 'PMB' in context.request.serverVariables['HTTP_USER_AGENT']: # if is a mobile client # add session id in special header context.response.set_header('Porcupine-Session', session_id) else: # add cookie with sessionid context.response.cookies['_sid'] = session_id context.response.cookies['_sid']['path'] = \ context.request.SCRIPT_NAME + '/' context.session = new_session
def _fetch_session(self): path_info = self.request.serverVariables['PATH_INFO'] or '/' # get session session = None cookiesEnabled = True if self.request.cookies.has_key('_sid'): session = SessionManager.fetch_session( self.request.cookies['_sid'].value) else: cookiesEnabled = False session_match = re.match(self.sid_pattern, path_info) if session_match: path_info = path_info.replace(session_match.group(), '', 1) or '/' self.request.serverVariables['PATH_INFO'] = path_info session = SessionManager.fetch_session(session_match.group(1)) if session != None: self.session = session self.user = _db.get_item(self.session.userid) self.request.serverVariables["AUTH_USER"] = \ self.user.displayName.value if not cookiesEnabled: if not session.sessionid in self.request.serverVariables["SCRIPT_NAME"]: self.request.serverVariables["SCRIPT_NAME"] += \ '/{%s}' % session.sessionid else: lstScript = self.request.serverVariables["SCRIPT_NAME"].split('/') self.request.serverVariables["SCRIPT_NAME"] = \ "/%s/{%s}" %(lstScript[1], session.sessionid) else: self.session = self.__create_guest_session()
def init_session_manager(init_expiration=True): return SessionManager.open( misc.get_rto_by_name(settings["sessionmanager"]["interface"]), int(settings["sessionmanager"]["timeout"]), init_expiration, **settings["sessionmanager"]["params"] )
def __create_guest_session(self): # create new session with the specified guest user self.user = _db.get_item(settings['sessionmanager']['guest']) new_session = SessionManager.create(settings['sessionmanager']['guest']) session_id = new_session.sessionid query_string = self.request.getQueryString() if '_nojavascript' in query_string: root_url = self.request.getRootUrl() path = self.request.serverVariables['PATH_INFO'] self.response.redirect( '%(root_url)s/{%(session_id)s}%(path)s' % locals() ) # add cookie with sessionid self.response.cookies['_sid'] = session_id self.response.cookies['_sid']['path'] = \ self.request.serverVariables['SCRIPT_NAME'] return new_session
def close_session_manager(): SessionManager.close()
def init_session_manager(init_expiration=True): return SessionManager.open( misc.get_rto_by_name(settings['sessionmanager']['interface']), int(settings['sessionmanager']['timeout']), init_expiration, **settings['sessionmanager']['params'])