""" command methods for MURSAT1 Mission Dashboard """ from cgi import parse_qs, escape from mmd.MmdWidgets import * from mmd.MmdUser import User def loginForm (session): """ display the login form """ return indexWidget (dataWidget (), loginFormWidget (), statusWidget (session)) def login (session): """ evaluate data from loginForm """ email = escape (session.qs.get ('email', [''])[0]) # check for account # verify password return indexWidget (dataWidget (), loginWidget (email), statusWidget (session)) def registerForm (session): """ display the register form """ return indexWidget (dataWidget (), registerFormWidget (), statusWidget (session)) def register (session): """ evaluate data from registerForm """ firstname = session.getQsFirstname () lastname = session.getQsLastname () email = session.getQsEmail () callsign = session.getQsCallsign () longitude = session.getQsLongitude () latitude = session.getQsLatitude () password = session.getQsPassword () confirm = session.getQsConfirm () if password != confirm: error_message = {'error': 'Password', 'description': 'Passwords do not match.'} return indexWidget (dataWidget (), errorWidget (error_message), statusWidget (session)) user = User () code = user.create (session.session_id, firstname, lastname, email, callsign, longitude, latitude, password) user.email = email message = '''From: noreply To: {0} Subject: MMD registration confirmation request Good day! Someone (probably you) has registered at the MURSAT1 Mission Dashbaord (MMD) at http://sat.mur.at/dashboard. Please confirm the registration using the link below: http://hofos.at/mmd/?cmd=completeRegistration&code={1} Regards, MURSAT1 team '''.format (user.email, code) 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 (), registerWidget (), statusWidget (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)) # 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)) user.confirm (code) session.authenticate (user) return indexWidget (dataWidget (), confirmRegistrationWidget (user), statusWidget (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)) user.cancel (code) return indexWidget (dataWidget (), cancelRegistrationWidget (), statusWidget (session)) def submitForm (session): """ display the form for data submission """ return indexWidget (dataWidget (), submitFormWidget (), statusWidget (session)) def submit (session): """ evaluate data from submitForm """ return indexWidget (dataWidget (), submitWidget (), statusWidget (session)) def viewlog (session): """ show latest log entries/submissions """ return indexWidget (dataWidget (), logWidget (), statusWidget (session)) def index (session): """ display the index page """ return indexWidget (dataWidget (), osmWidget (), statusWidget (session)) 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