""" Session class for MURSAT1 Mission Dashboard """ from cgi import parse_qs, escape from MmdDb import Db import time # session timeout set to 10 minutes (600 seconds) timeout = 600 class Session: def __init__ (self, session_id): self.session_id = session_id self.email = 'Anonymous' self.status = 'anon' self.headers = [] self.db = Db () data = self.db.sessionFind (session_id) if not data: self.db.sessionInit (self.session_id, self.email, int (time.strftime ('%s')) + timeout) else: self.email = data[1] self.status = data[2] def addHeader (self, header): self.headers.append (header) def update (self): self.db.sessionUpdate (self.session_id, int (time.strftime ('%s')) + timeout) def setEmail (self, email = 'Anonymous'): self.email = email self.db.sessionSetEmail (self.session_id, self.email) def setStatus (self, status = 'anon'): self.status = status self.db.sessionSetStatus (self.session_id, self.status) def valid (self): data = self.db.sessionFind (self.session_id) if not data: return False if data[3] < int (time.strftime ('%s')): return False return True def delete (self): self.db.sessionDelete (self.session_id) # session methods to extract strings from QueryString def getQsCmd (self): return escape (self.qs.get ('cmd', [''])[0]).decode ('utf-8') def getQsFirstname (self): return escape (self.qs.get ('firstname', [''])[0]).decode ('utf-8') def getQsLastname (self): return escape (self.qs.get ('lastname', [''])[0]).decode ('utf-8') def getQsEmail (self): return escape (self.qs.get ('email', [''])[0]).decode ('utf-8') def getQsCallsign (self): return escape (self.qs.get ('callsign', [''])[0]).decode ('utf-8') def getQsLongitude (self): return escape (self.qs.get ('longitude', [''])[0]).decode ('utf-8') def getQsLatitude (self): return escape (self.qs.get ('latitude', [''])[0]).decode ('utf-8') def getQsPassword (self): return escape (self.qs.get ('password', [''])[0]).decode ('utf-8') def getQsConfirm (self): return escape (self.qs.get ('confirm', [''])[0]).decode ('utf-8') if __name__ == "__main__": pass # vim: tw=0 ts=2 expandtab # EOF