""" 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 (session), loginFormWidget (), statusWidget (session), session) def login (session): """ evaluate data from loginForm """ if not session.user.load (session.getQsEmail ()): error_message = {'error': 'Login', 'description': 'Login failed.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) if not session.user.checkPassword (session.getQsPassword ()): error_message = {'error': 'Login', 'description': 'Login failed.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) session.setStatus ('auth') return indexWidget (dataWidget (session), loginWidget (session.user), statusWidget (session), session) def logout (session): session.user.email = 'Anonymous' session.setStatus () return indexWidget (dataWidget (session), logoutWidget (), statusWidget (session), session) def registerForm (session): """ display the register form """ return indexWidget (dataWidget (session), registerFormWidget (), statusWidget (session), 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 () location_name = session.getQsLocationName () password = session.getQsPassword () confirm = session.getQsConfirm () altitude = session.getQsAltitude () if password != confirm: error_message = {'error': 'Password', 'description': 'Passwords do not match.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) user = User () code = user.create (session.session_id, firstname, lastname, email, callsign, password) if longitude != '' and latitude != '' and location_name != '': user.addLocation (location_name, longitude, latitude, altitude, 'yes') message = '''From: noreply To: "{0} {1}" <{2}> Subject: MMD registration confirmation request Dear {0} {1}, 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={3} Regards, MURSAT1 team '''.format (user.firstname, user.lastname, user.email, code) if not user.sendEmail (message): error_message = {'error': 'Email', 'description': 'Email could not be sent.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) return indexWidget (dataWidget (session), registerWidget (), statusWidget (session), session) def completeRegistration (session): code = session.getQsCode () if not session.user.findPending (code): error_message = {'error': 'Registration', 'description': 'Registration Failed.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) return indexWidget (dataWidget (session), completeRegistrationWidget (code), statusWidget (session), session) def confirmRegistration (session): code = session.getQsCode () if not session.user.findPending (code): error_message = {'error': 'Registration', 'description': 'Registration Failed.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) session.user.confirm (code) session.setStatus ('auth') return indexWidget (dataWidget (session), confirmRegistrationWidget (session.user), statusWidget (session), session) def cancelRegistration (session): code = session.getQsCode () if not session.user.findPending (code): error_message = {'error': 'Registration', 'description': 'Canceling failed.'} return indexWidget (dataWidget (session), errorWidget (error_message), statusWidget (session), session) session.user.cancel (code) return indexWidget (dataWidget (session), cancelRegistrationWidget (), statusWidget (session), session) def mmdCredits (session): ''' display a page with credits/thanks ''' return indexWidget (dataWidget (session), creditsWidget (), statusWidget (session)) def submitForm (session): """ display the form for data submission """ return indexWidget (dataWidget (session), submitFormWidget (), statusWidget (session), session) def submit (session): """ evaluate data from submitForm """ return indexWidget (dataWidget (session), submitWidget (), statusWidget (session), session) def viewlog (session): """ show latest log entries/submissions """ return indexWidget (dataWidget (session), logWidget (), statusWidget (session), session) def index (session): """ display the index page """ satellite = {'longitude': 15.4426, 'latitude': 47.06576} return indexWidget (dataWidget (session), osmWidget (session), statusWidget (session), 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