From 7fa0052ae497ffef76ebe05e40589e0659505461 Mon Sep 17 00:00:00 2001 From: Jogi Hofmüller Date: Tue, 2 Aug 2011 09:50:21 +0000 Subject: - 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 --- tools/mmd/MmdCommands.py | 44 ++++++++++++++++++++++++-------------------- tools/mmd/MmdSession.py | 7 ++----- tools/mmd/MmdWidgets.py | 39 ++++++++++++++++++++++++++++++++------- tools/mmd/mmd.css | 12 ++++++++++-- tools/mmd/mmd.wsgi | 2 ++ 5 files changed, 70 insertions(+), 34 deletions(-) (limited to 'tools/mmd') 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 = ''' +
+ You have been logged out. +
+ ''' + + 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 = '''logout''' + inout = '''Status: logged in as {0}. logout'''.format (session.user.email) else: - inout = '''login''' + inout = '''Status: logged out. login''' html = ''' mur.sat logo MURSAT1 Mission Dashboard
- Hello {0} with session id '{1}'! Local time is {2}. {3} + {0}. Local time is {1}.
- '''.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 = ''' +
+     Debug Info
+     ==========
+     SessionId: {0}
+     IP: {1}
+     Email: {2}
+     Status: {3}
+     Expires: {4}
+    
+ '''.format (debug_info.session_id, debug_info.ip, debug_info.user.email, debug_info.status, debug_info.expires) + else: + debug = '' + html = ''' @@ -195,16 +219,17 @@ def indexWidget (lcol, rcol, status):
Development version!
+ {3} - '''.format (status, lcol, rcol) + '''.format (status, lcol, rcol, debug) return html def dataWidget (longitude = 15.44226, latitude = 47.06576): html = '''
- Current Data + Current Satellite Data
Time: 00 D 00 H 00 M 00 S
Longitude: {0}
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': -- cgit v1.2.3