summaryrefslogtreecommitdiff
path: root/tools/mmd
diff options
context:
space:
mode:
authorJogi Hofmüller <jogi@mur.at>2011-07-29 22:31:46 +0000
committerJogi Hofmüller <jogi@mur.at>2011-07-29 22:31:46 +0000
commitf5459e62f9847811513da73c8755e470e0b509fc (patch)
treebd2a2fc3b43c73e53583933234140f225814a223 /tools/mmd
parentadded some more rtc init code (diff)
- 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
Diffstat (limited to 'tools/mmd')
-rw-r--r--tools/mmd/MmdCommands.py44
-rw-r--r--tools/mmd/MmdDb.py40
-rw-r--r--tools/mmd/MmdSession.py34
-rw-r--r--tools/mmd/MmdWidgets.py18
-rw-r--r--tools/mmd/__init__.py3
5 files changed, 113 insertions, 26 deletions
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 ():
<tr><td class="formfield">Confirm Password*: </td><td><input type="password" name="confirm" /></td></tr>
<tr><td class="formfield"><input type="submit" value="Register" /></td><td></td></tr>
</table>
- <input type="hidden" name="cmd" value="login" />
+ <input type="hidden" name="cmd" value="register" />
</form>
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 = '''
- <img src="http://sat.mur.at/pics/sat-logo-notext.png" alt="mur.sat logo" /> MURSAT1 Mission Dashboard
+ <a href="mmd">
+ <img src="http://sat.mur.at/pics/sat-logo-notext.png" alt="mur.sat logo" />
+ </a>
+ MURSAT1 Mission Dashboard
<div id="info">
- Hello {0} from {1}! Local time is {2}
+ Hello {0} with session id '{1}'! Local time is {2}
</div>
'''.format (user, ip, time.strftime ('%c'))
return html
-def indexWidget (lcol, rcol, status = statusWidget (None)):
+def indexWidget (lcol, rcol, status):
html = '''
<!Doctype html>
<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
+"""