diff options
Diffstat (limited to 'tools/mmd/MmdUser.py')
-rw-r--r-- | tools/mmd/MmdUser.py | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/tools/mmd/MmdUser.py b/tools/mmd/MmdUser.py index 1521fae..c7d0ee0 100644 --- a/tools/mmd/MmdUser.py +++ b/tools/mmd/MmdUser.py @@ -3,6 +3,7 @@ User class for MURSAT1 Mission Dashboard """ import hashlib import smtplib +import time from cgi import parse_qs, escape from MmdDb import Db @@ -13,9 +14,42 @@ class User: def create (self, user_id, firstname, lastname, email, callsign, longitude, latitude, password): password_hash = hashlib.sha1 (password).hexdigest () - confreg = hashlib.sha1 ('{0}{1}{2}{3}'.format (user_id, firstname, lastname, email)).hexdigest () - self.db.userCreate (user_id, firstname, lastname, email, callsign, password_hash, confreg) - return confreg + code = hashlib.sha1 ('{0}{1}{2}{3}'.format (user_id, firstname, lastname, email)).hexdigest () + regtimeout = int (time.strftime ('%s')) + (3600 * 24) + self.db.userCreate (user_id, firstname, lastname, email, callsign, password_hash, code, regtimeout) + return code + + def findPending (self, code): + u = self.db.userFindPending (code) + if not u: + return False + if int (u['regtimeout']) < int (time.strftime ('%s')): + return False + return True + + def confirm (self, code): + u = self.db.userFindPending (code) + if not u: + return False + if int (u['regtimeout']) < int (time.strftime ('%s')): + return False + self.db.userConfirm (code) + self.email = u['email'] + self.firstname = u['firstname'] + self.lastname = u['lastname'] + return True + + def load (self, email): + u = self.db.userFindEmail (email) + if not u: + return False + self.email = email + self.firstname = u['firstname'] + self.lastname = u['lastname'] + # include loading of location data here + + def cancel (self, code): + self.db.userCancel (code) def sendEmail (self, message): server = smtplib.SMTP ('localhost') |