From f852eea73acb6d04d7b9213949fc521b92636a96 Mon Sep 17 00:00:00 2001 From: Jogi Hofmüller Date: Sun, 31 Jul 2011 15:52:59 +0000 Subject: - new module MmdUser.py - registration works basically git-svn-id: https://svn.spreadspace.org/mur.sat@85 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- tools/mmd/MmdSession.py | 73 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 12 deletions(-) (limited to 'tools/mmd/MmdSession.py') diff --git a/tools/mmd/MmdSession.py b/tools/mmd/MmdSession.py index 82f0ecd..c2d41b4 100644 --- a/tools/mmd/MmdSession.py +++ b/tools/mmd/MmdSession.py @@ -3,30 +3,79 @@ 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.authenticated = False + self.email = 'Anonymous' + self.status = 'anon' self.headers = [] - db = Db () - data = db.sessionFind (session_id) + self.db = Db () + data = self.db.sessionFind (session_id) if not data: - self.user = 'Anon' - db.sessionInit (self.session_id, self.user) - self.status = 'new' + self.db.sessionInit (self.session_id, self.email, int (time.strftime ('%s')) + timeout) else: - self.user = data[1] - self.status = 'db' - db.close () - - def getCmd (self): - return escape (self.qs.get ('cmd', [''])[0]) + 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 -- cgit v1.2.3