def post(self): try: (email, username, password) = (self.get_argument("email", None), self.get_argument("username", None), self.get_argument("password", None)) #Check for empty fields & already existing users databaseOperations.connectToDatabase('astrodb') errMsg = errorCheck.checkRegister(email, username, password) databaseOperations.closeConnectionToDatabase() if errMsg != None: self.render("../register.html", userName=self.get_secure_cookie("user"), errMsg=errMsg) return hashedPwd = hashlib.sha512(password).hexdigest() ip_address = self.request.remote_ip databaseOperations.connectToDatabase('astrodb') databaseOperations.register(email, username, hashedPwd, ip_address) #Create reset code chars = string.ascii_lowercase + string.ascii_uppercase + string.digits resetCode = ''.join( random.choice(chars) for r in range(15) ) databaseOperations.changeResetCode(username, resetCode) databaseOperations.closeConnectionToDatabase() #Construct the verification code r = str(random.randint(0,1000)) verificationCode = hashlib.sha512(username + hashedPwd + r).hexdigest()[:35] #Construct the URL and EMAIL CONTENTS url = "http://www.astrocamel.com/verify?u=%s&c=%s&r=%s" %(username, verificationCode, r) to = email gmail_user = '******' gmail_pwd = 'x' smtpserver = smtplib.SMTP("smtp.gmail.com",587) smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo smtpserver.login(gmail_user, gmail_pwd) header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:Registration at AstroCamel \n' msg = header + "\n You have successfully registers at AstroCamel.com. Visit " + url + " to verify your registration. \n\n" smtpserver.sendmail(gmail_user, to, msg) smtpserver.close() self.render("../message.html", userName=self.get_secure_cookie("user"), message="Registration complete. Check your email for the verification code. You may need to check your junk mail") except: self.render("../message.html", userName=self.get_secure_cookie("user"), message="Registration could not be complete due to an error")
def post(self): try: username = self.get_argument("user", None) #Check for empty field if not username: self.render("../message.html", userName=self.get_secure_cookie("user"), message="Username was left blank") return databaseOperations.connectToDatabase('astrodb') email = databaseOperations.getEmailFromUsername(username) if not email: self.render("../message.html", userName=self.get_secure_cookie("user"), message="Cannot reset password for this user") return else: email = email[0] #Create reset code chars = string.ascii_lowercase + string.ascii_uppercase + string.digits resetCode = ''.join( random.choice(chars) for r in range(15) ) databaseOperations.changeResetCode(username, resetCode) databaseOperations.closeConnectionToDatabase() #Construct the URL url = "http://www.astrocamel.com/resetpassword?u=%s&c=%s" %(username, resetCode) to = email gmail_user = '******' gmail_pwd = 'x' smtpserver = smtplib.SMTP("smtp.gmail.com",587) smtpserver.ehlo() smtpserver.starttls() smtpserver.ehlo smtpserver.login(gmail_user, gmail_pwd) header = 'To:' + to + '\n' + 'From: ' + gmail_user + '\n' + 'Subject:Lost Password - AstroCamel \n' msg = header + "\n You have requested a password reset. Please follow the link: " + url + " to reset your password. \n\n" smtpserver.sendmail(gmail_user, to, msg) smtpserver.close() self.render("../message.html", userName=self.get_secure_cookie("user"), message="An email has been sent to your address with further instructions on how to reset your password. You may need to check your junk mail") except: self.render("../message.html", userName=self.get_secure_cookie("user"), message="Cannot reset password for this user")