summaryrefslogtreecommitdiff
path: root/tools/mmd
diff options
context:
space:
mode:
authorJogi Hofmüller <jogi@mur.at>2011-08-02 09:50:21 +0000
committerJogi Hofmüller <jogi@mur.at>2011-08-02 09:50:21 +0000
commit7fa0052ae497ffef76ebe05e40589e0659505461 (patch)
treea3d683664757d36672e096a5f8a988df56cd4841 /tools/mmd
parent- login works now (diff)
- logout works now
- added debug info at the bottom of the page - have nices status line now git-svn-id: https://svn.spreadspace.org/mur.sat@91 7de4ea59-55d0-425e-a1af-a3118ea81d4c
Diffstat (limited to 'tools/mmd')
-rw-r--r--tools/mmd/MmdCommands.py44
-rw-r--r--tools/mmd/MmdSession.py7
-rw-r--r--tools/mmd/MmdWidgets.py39
-rw-r--r--tools/mmd/mmd.css12
-rw-r--r--tools/mmd/mmd.wsgi2
5 files changed, 70 insertions, 34 deletions
diff --git a/tools/mmd/MmdCommands.py b/tools/mmd/MmdCommands.py
index 57401ad..7d69a43 100644
--- a/tools/mmd/MmdCommands.py
+++ b/tools/mmd/MmdCommands.py
@@ -10,7 +10,7 @@ def loginForm (session):
"""
display the login form
"""
- return indexWidget (dataWidget (), loginFormWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), loginFormWidget (), statusWidget (session), session)
def login (session):
"""
@@ -18,18 +18,23 @@ def login (session):
"""
if not session.user.load (session.getQsEmail ()):
error_message = {'error': 'Login', 'description': 'Login failed.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
if not session.user.checkPassword (session.getQsPassword ()):
error_message = {'error': 'Login', 'description': 'Login failed.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
session.setStatus ('auth')
- return indexWidget (dataWidget (), loginWidget (session.user), statusWidget (session))
+ return indexWidget (dataWidget (), loginWidget (session.user), statusWidget (session), session)
+
+def logout (session):
+ session.user.email = 'Anonymous'
+ session.setStatus ()
+ return indexWidget (dataWidget (), logoutWidget (), statusWidget (session), session)
def registerForm (session):
"""
display the register form
"""
- return indexWidget (dataWidget (), registerFormWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), registerFormWidget (), statusWidget (session), session)
def register (session):
"""
@@ -46,7 +51,7 @@ def register (session):
if password != confirm:
error_message = {'error': 'Password', 'description': 'Passwords do not match.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
user = User ()
code = user.create (session.session_id, firstname, lastname, email, callsign, longitude, latitude, password)
@@ -69,61 +74,60 @@ MURSAT1 team
if not user.sendEmail (message):
error_message = {'error': 'Email', 'description': 'Email could not be sent.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
- return indexWidget (dataWidget (), registerWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), registerWidget (), statusWidget (session), session)
def completeRegistration (session):
user = User ()
code = session.getQsCode ()
if not user.findPending (code):
error_message = {'error': 'Registration', 'description': 'Registration Failed.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
- return indexWidget (dataWidget (), completeRegistrationWidget (code), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
+ return indexWidget (dataWidget (), completeRegistrationWidget (code), statusWidget (session), session)
-# TODO finish theses methods
def confirmRegistration (session):
user = User ()
code = session.getQsCode ()
if not user.findPending (code):
error_message = {'error': 'Registration', 'description': 'Registration Failed.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
user.confirm (code)
- session.authenticate (user)
- return indexWidget (dataWidget (), confirmRegistrationWidget (user), statusWidget (session))
+ session.setStatus ('auth')
+ return indexWidget (dataWidget (), confirmRegistrationWidget (user), statusWidget (session), session)
def cancelRegistration (session):
user = User ()
code = session.getQsCode ()
if not user.findPending (code):
error_message = {'error': 'Registration', 'description': 'Canceling failed.'}
- return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session))
+ return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session), session)
user.cancel (code)
- return indexWidget (dataWidget (), cancelRegistrationWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), cancelRegistrationWidget (), statusWidget (session), session)
def submitForm (session):
"""
display the form for data submission
"""
- return indexWidget (dataWidget (), submitFormWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), submitFormWidget (), statusWidget (session), session)
def submit (session):
"""
evaluate data from submitForm
"""
- return indexWidget (dataWidget (), submitWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), submitWidget (), statusWidget (session), session)
def viewlog (session):
"""
show latest log entries/submissions
"""
- return indexWidget (dataWidget (), logWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), logWidget (), statusWidget (session), session)
def index (session):
"""
display the index page
"""
- return indexWidget (dataWidget (), osmWidget (), statusWidget (session))
+ return indexWidget (dataWidget (), osmWidget (), statusWidget (session), session)
def mmdtest (env, cookie):
body = ''
diff --git a/tools/mmd/MmdSession.py b/tools/mmd/MmdSession.py
index 387e41c..e1e171d 100644
--- a/tools/mmd/MmdSession.py
+++ b/tools/mmd/MmdSession.py
@@ -28,17 +28,14 @@ class Session:
self.headers.append (header)
def update (self):
- self.db.sessionUpdate (self.session_id, int (time.strftime ('%s')) + timeout)
+ self.expires = int (time.strftime ('%s')) + timeout
+ self.db.sessionUpdate (self.session_id, self.expires)
def setStatus (self, status = 'anon'):
self.status = status
self.db.sessionSetStatus (self.session_id, self.status)
self.db.sessionSetEmail (self.session_id, self.user.email)
- def authenticate (self):
- self.setStatus ('auth')
- self.db.sessionSetEmail (self.session_id, self.user.email)
-
def valid (self):
data = self.db.sessionFind (self.session_id)
if not data:
diff --git a/tools/mmd/MmdWidgets.py b/tools/mmd/MmdWidgets.py
index 6ff3f3d..cfd4a7d 100644
--- a/tools/mmd/MmdWidgets.py
+++ b/tools/mmd/MmdWidgets.py
@@ -31,6 +31,15 @@ def loginWidget (user):
return html
+def logoutWidget ():
+ html = '''
+ <div>
+ You have been logged out.
+ </div>
+ '''
+
+ return html
+
def registerFormWidget ():
html = '''
Please fill in the form below and click on register. You will receive a confirmation email.
@@ -158,22 +167,37 @@ def osmWidget (longitude = 15.4426, latitude = 47.06576):
def statusWidget (session):
if session.status == 'auth':
- inout = '''<span id="logout"><a href="?cmd=logout">logout</a></span>'''
+ inout = '''Status: logged in as {0}. <span id="logout"><a href="?cmd=logout">logout</a></span>'''.format (session.user.email)
else:
- inout = '''<span id="login"><a href="?cmd=loginForm">login</a></span>'''
+ inout = '''Status: logged out. <span id="login"><a href="?cmd=loginForm">login</a></span>'''
html = '''
<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} with session id '{1}'! Local time is {2}. {3}
+ {0}. Local time is {1}.
</div>
- '''.format (session.user.email, session.session_id, time.strftime ('%c'), inout)
+ '''.format (inout, time.strftime ('%c'))
return html
-def indexWidget (lcol, rcol, status):
+def indexWidget (lcol, rcol, status, debug_info = False):
+ if debug_info:
+ debug = '''
+ <pre class="debug">
+ Debug Info
+ ==========
+ SessionId: {0}
+ IP: {1}
+ Email: {2}
+ Status: {3}
+ Expires: {4}
+ </pre>
+ '''.format (debug_info.session_id, debug_info.ip, debug_info.user.email, debug_info.status, debug_info.expires)
+ else:
+ debug = ''
+
html = '''
<!Doctype html>
<html>
@@ -195,16 +219,17 @@ def indexWidget (lcol, rcol, status):
<div id="dev">
Development version!
</div>
+ {3}
</body>
</html>
- '''.format (status, lcol, rcol)
+ '''.format (status, lcol, rcol, debug)
return html
def dataWidget (longitude = 15.44226, latitude = 47.06576):
html = '''
<div id="datahead">
- Current Data
+ Current Satellite Data
</div>
<div>Time: 00 D 00 H 00 M 00 S</div>
<div>Longitude: {0}</div>
diff --git a/tools/mmd/mmd.css b/tools/mmd/mmd.css
index 8a58ec3..d6d714e 100644
--- a/tools/mmd/mmd.css
+++ b/tools/mmd/mmd.css
@@ -7,13 +7,11 @@ html, body
#login a
{
color: green;
- margin-left: 32px;
}
#logout a
{
color: red;
- margin-left: 32px;
}
#status img
@@ -99,3 +97,13 @@ html, body
width: 100%;
float: left;
}
+
+pre.debug
+{
+ background-color: white;
+ color: black;
+ float: left;
+ font: 10pt courier, monospace;
+ padding: 1px;
+ margin: 1px;
+}
diff --git a/tools/mmd/mmd.wsgi b/tools/mmd/mmd.wsgi
index 899de6c..231f1a0 100644
--- a/tools/mmd/mmd.wsgi
+++ b/tools/mmd/mmd.wsgi
@@ -51,6 +51,8 @@ def application (environ, response):
body = loginForm (session)
elif cmd == 'login':
body = login (session)
+ elif cmd == 'logout':
+ body = logout (session)
elif cmd == 'registerForm':
body = registerForm (session)
elif cmd == 'register':