summaryrefslogtreecommitdiff
path: root/tools/mmd/MmdUser.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/mmd/MmdUser.py')
-rw-r--r--tools/mmd/MmdUser.py40
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')