summaryrefslogtreecommitdiff
path: root/tools/mmd/MmdSession.py
diff options
context:
space:
mode:
authorJogi Hofmüller <jogi@mur.at>2011-07-31 15:52:59 +0000
committerJogi Hofmüller <jogi@mur.at>2011-07-31 15:52:59 +0000
commitf852eea73acb6d04d7b9213949fc521b92636a96 (patch)
tree38cedb0c6c4fba3f99767594845dbe64237533b7 /tools/mmd/MmdSession.py
parent1wire for DS1821 works now (diff)
- new module MmdUser.py
- registration works basically git-svn-id: https://svn.spreadspace.org/mur.sat@85 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'tools/mmd/MmdSession.py')
-rw-r--r--tools/mmd/MmdSession.py73
1 files changed, 61 insertions, 12 deletions
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