From f5459e62f9847811513da73c8755e470e0b509fc Mon Sep 17 00:00:00 2001 From: Jogi Hofmüller Date: Fri, 29 Jul 2011 22:31:46 +0000 Subject: - added modules for sqlite3 connection and session handling - added cookie support git-svn-id: https://svn.spreadspace.org/mur.sat@74 7de4ea59-55d0-425e-a1af-a3118ea81d4c --- tools/mmd/MmdCommands.py | 44 ++++++++++++++++++++++++-------------------- tools/mmd/MmdDb.py | 40 ++++++++++++++++++++++++++++++++++++++++ tools/mmd/MmdSession.py | 34 ++++++++++++++++++++++++++++++++++ tools/mmd/MmdWidgets.py | 18 ++++++++++++------ tools/mmd/__init__.py | 3 +++ 5 files changed, 113 insertions(+), 26 deletions(-) create mode 100644 tools/mmd/MmdDb.py create mode 100644 tools/mmd/MmdSession.py create mode 100644 tools/mmd/__init__.py diff --git a/tools/mmd/MmdCommands.py b/tools/mmd/MmdCommands.py index 1af9422..5bf870d 100644 --- a/tools/mmd/MmdCommands.py +++ b/tools/mmd/MmdCommands.py @@ -1,66 +1,70 @@ """ -command methods for MURSAT1 Dashboard +command methods for MURSAT1 Mission Dashboard """ from cgi import parse_qs, escape -from MmdWidgets import * +from mmd.MmdWidgets import * -def loginForm (data): +def loginForm (session): """ display the login form """ - return indexWidget (dataWidget (), loginFormWidget (), statusWidget (data['ip'])) + return indexWidget (dataWidget (), loginFormWidget (), statusWidget (session.session_id, session.user)) -def login (data): +def login (session): """ evaluate data from loginForm """ - email = escape (data['qs'].get ('email', [''])[0]) + email = escape (session.qs.get ('email', [''])[0]) # check for account # verify password - return indexWidget (dataWidget (), loginWidget (email), statusWidget (data['ip'], data['user'])) + return indexWidget (dataWidget (), loginWidget (email), statusWidget (session.session_id, session.user)) -def registerForm (data): +def registerForm (session): """ display the register form """ - return indexWidget (dataWidget (), registerFormWidget (), statusWidget (data['ip'])) + return indexWidget (dataWidget (), registerFormWidget (), statusWidget (session.session_id, session.user)) -def register (data): +def register (session): """ evaluate data from registerForm """ - return indexWidget (dataWidget (), loginWidget (), statusWidget (data['ip'])) + return indexWidget (dataWidget (), registerWidget (), statusWidget (session.session_id, session.user)) -def submitForm (data): +def submitForm (session): """ display the form for data submission """ - return indexWidget (dataWidget (), submitFormWidget (), statusWidget (data['ip'], data['user'])) + return indexWidget (dataWidget (), submitFormWidget (), statusWidget (session.session_id, session.user)) -def submit (data): +def submit (session): """ evaluate data from submitForm """ - return indexWidget (dataWidget (), submitWidget (), statusWidget (data['ip'])) + return indexWidget (dataWidget (), submitWidget (), statusWidget (session.session_id, session.user)) -def viewlog (data): +def viewlog (session): """ show latest log entries/submissions """ - return indexWidget (dataWidget (), logWidget (), statusWidget (data['ip'], data['user'])) + return indexWidget (dataWidget (), logWidget (), statusWidget (session.session_id, session.user)) -def index (data): +def index (session): """ display the index page """ - return indexWidget (dataWidget (), osmWidget (), statusWidget (data['ip'], data['user'])) + return indexWidget (dataWidget (), osmWidget (), statusWidget (session.session_id, session.user)) -def msdbtest (env): +def mmdtest (env, cookie): body = '' for key, value in sorted (env.items()): body = '{0}{1}: {2}\n'.format (body, key, value) + body = '{0}Cookie: {1}\n'.format (body, cookie['mmd'].value) return body +if __name__ == "__main__": + pass + # vim: tw=0 ts=2 expandtab # EOF diff --git a/tools/mmd/MmdDb.py b/tools/mmd/MmdDb.py new file mode 100644 index 0000000..6947c88 --- /dev/null +++ b/tools/mmd/MmdDb.py @@ -0,0 +1,40 @@ +""" +sqlite3 database module for MURSAT1 Mission Dashboard +""" + +import sqlite3 + +class Db: + + def __init__ (self): + self.conn = sqlite3.connect ('/usr/local/mmd/db/mmd.db') + self.cursor = self.conn.cursor () + + def sessionFind (self, session_id): + self.cursor.execute ('SELECT * FROM session WHERE id=?', (session_id,)) + return self.cursor.fetchone () + + def sessionInit (self, session_id, user): + self.cursor.execute ('INSERT INTO session VALUES (?,?)', (session_id, user,)) + self.conn.commit () + + def sessionDelete (self, session_id): + self.cursor.execute ('DELETE FROM session WHERE id=?', (session_id,)) + self.conn.commit () + + def close (self): + self.cursor.close () + self.conn.close () + +if __name__ == "__main__": + db = Db () + print db.sessionFind ('1234567890') + db.sessionInit ('1234567890') + data = db.sessionFind ('1234567890') + print data[0], data[1] + db.sessionDelete ('1234567890') + print db.sessionFind ('1234567890') + + +# vim: tw=0 ts=2 expandtab +# EOF diff --git a/tools/mmd/MmdSession.py b/tools/mmd/MmdSession.py new file mode 100644 index 0000000..82f0ecd --- /dev/null +++ b/tools/mmd/MmdSession.py @@ -0,0 +1,34 @@ +""" +Session class for MURSAT1 Mission Dashboard +""" +from cgi import parse_qs, escape +from MmdDb import Db + +class Session: + + def __init__ (self, session_id): + self.session_id = session_id + self.authenticated = False + self.headers = [] + db = Db () + data = db.sessionFind (session_id) + if not data: + self.user = 'Anon' + db.sessionInit (self.session_id, self.user) + self.status = 'new' + else: + self.user = data[1] + self.status = 'db' + db.close () + + def getCmd (self): + return escape (self.qs.get ('cmd', [''])[0]) + + def addHeader (self, header): + self.headers.append (header) + +if __name__ == "__main__": + pass + +# vim: tw=0 ts=2 expandtab +# EOF diff --git a/tools/mmd/MmdWidgets.py b/tools/mmd/MmdWidgets.py index a1a1f55..8bade15 100644 --- a/tools/mmd/MmdWidgets.py +++ b/tools/mmd/MmdWidgets.py @@ -1,5 +1,5 @@ """ -web templates for MURSAT1 Dashboard +web widgets for MURSAT1 Dashboard """ import time @@ -42,7 +42,7 @@ def registerFormWidget (): Confirm Password*: - + Fields marked with a * are mandatory. ''' @@ -51,7 +51,7 @@ def registerFormWidget (): def registerWidget (): html = ''' - need processing of data + you could be registered iff I had finished this code ''' return html @@ -104,15 +104,18 @@ def osmWidget (longitude = 15.4426, latitude = 47.06576): def statusWidget (ip, user = 'Anonymous'): html = ''' - mur.sat logo MURSAT1 Mission Dashboard + + mur.sat logo + + MURSAT1 Mission Dashboard
- Hello {0} from {1}! Local time is {2} + Hello {0} with session id '{1}'! Local time is {2}
'''.format (user, ip, time.strftime ('%c')) return html -def indexWidget (lcol, rcol, status = statusWidget (None)): +def indexWidget (lcol, rcol, status): html = ''' @@ -158,5 +161,8 @@ def dataWidget (longitude = 15.44226, latitude = 47.06576): return html +if __name__ == "__main__": + pass + # vim: ft=html tw=0 ts=2 expandtab # EOF diff --git a/tools/mmd/__init__.py b/tools/mmd/__init__.py new file mode 100644 index 0000000..c3ab690 --- /dev/null +++ b/tools/mmd/__init__.py @@ -0,0 +1,3 @@ +""" +20110729 +""" -- cgit v1.2.3