def handle(self): db = self.__db cursor = self.__cursor hostname = self.__hostname mail_server = self.__mail_server # August 19, 2011 mail_admin = self.__mail_admin # August 19, 2011 clone_request = self.__clone_request form = cgi.FieldStorage(keep_blank_values="True") uHandler = UserHandler(db, cursor) # print "Content-type:text/html" # TEMPORARY, REMOVE AFTER DEBUGGING TO HAVE SCRIPT REDIRECT PROPERLY!!!!!! # print # DITTO # print `form` if form.has_key("curr_username"): # store the user ID for use throughout the session; add to other views in addition to create in PHP currUname = form.getvalue("curr_username") currUser = uHandler.getUserByDescription(currUname) Session.setUser(currUser) elif form.has_key("curr_user_id"): currUID = form.getvalue("curr_user_id") currUser = uHandler.getUserByID(currUID) Session.setUser(currUser) if form.has_key("add_user"): self.addUser(form) elif form.has_key("modify_user"): self.modifyUser(form) elif form.has_key("cancel_user"): self.cancelUserModification(form) elif form.has_key("save_user"): self.saveUser(form) elif form.has_key("delete_user"): self.deleteUser(form) elif ( form.has_key("view_user") and form.getvalue("view_user") != "" and not form.has_key("modify_lab") and not form.has_key("delete_lab") ): self.viewUser(form) # Nov. 17/07 - Personal user page elif ( form.has_key("view_user") and form.getvalue("view_user") == "" and not form.has_key("modify_lab") and not form.has_key("delete_lab") ): self.printUserInfo("view", currUser) elif form.has_key("add_lab"): self.addLab(form) elif form.has_key("view_lab"): self.viewLab(form) elif form.has_key("modify_lab"): self.modifyLab(form) elif form.has_key("save_lab"): self.saveLab(form) elif form.has_key("cancel_lab"): self.cancelLabModification(form) elif form.has_key("delete_lab"): self.deleteLab(form) elif form.has_key("bug_report"): self.submitBug(form) elif form.has_key("send_order"): ###################################################################### # CHANGE SERVER NAME AND EMAIL TO YOUR LOCAL CREDENTIALS ###################################################################### userID = form.getvalue("curr_user_id") userDescr = form.getvalue("curr_username") from_email = uHandler.findEmail(userID) if not from_email: from_email = userDescr to_email = clone_request email_subject = userDescr + ": Clone Request" f_in = form.getvalue("outputContent") infile = open(f_in, "rb") msg = email.MIMEMultipart.MIMEMultipart() # msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg["Subject"] = email_subject part = email.MIMEBase.MIMEBase("application", "octet-stream") part.set_payload(infile.read()) email.Utils.base64.standard_b64encode(infile.read()) part.add_header("Content-Disposition", 'attachment; filename="%s"' % os.path.basename(f_in)) msg.attach(part) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) # Send a request to your clone request address server.sendmail(from_email, to_email, msg.as_string()) # AND send a copy to the user (change the subject) # msg['Subject'] = "Clone request confirmation" # doesn't change, investigate later # Return email text changed March 31/08 ####################################### # CHANGE TEXT AS NEEDED ####################################### msg.attach( email.MIMEText.MIMEText( "This is a copy of your clone request. Please retain for your records. You will be notified by e-mail when your clone is ready." ) ) server.sendmail(to_email, from_email, msg.as_string()) server.quit() # Method 2 # sendmail = "/usr/sbin/sendmail" # o = os.popen("%s -t" % sendmail,"w") # o.write("To: %s\r\n" % to_email) # if from_email: # o.write("From: %s\r\n" % from_email) # o.write("Subject: %s\r\n" % email_subject) # o.write("\r\n") # o.write("%s\r\n" % msg) # o.close() os.remove(f_in) # delete the file from /tmp dir utils.redirect(hostname + "User.php?View=8&Sent=1") # June 1, 2010: Automated password reset elif form.has_key("reset_pw"): # change June 2, 2010: Don't enter email, rather, ask users to enter their username - more secure # to_email = form.getvalue("email") from_email = mail_admin # success = True chars = string.letters + string.digits new_passwd = "" for i in range(10): new_passwd += choice(chars) # reset it in the database if form.has_key("uName"): u_name = form.getvalue("uName") userID = uHandler.findUserIDByUsername(u_name) if userID > 0: u_descr = uHandler.findDescription(userID) to_email = uHandler.findEmail(userID) uHandler.setUserPropertyValue(userID, "password", new_passwd) email_subject = "OpenFreezer Password Change" msg = email.MIMEMultipart.MIMEMultipart() # msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg["Subject"] = email_subject ################################### # CHANGE TEXT AS NEEDED ################################### msg.attach( email.MIMEText.MIMEText( "Dear " + u_descr + ",\n\nYour password for OpenFreezer has been changed.\n\nYour temporary new password is: " + new_passwd + ".\n\nPlease change the temporary password as soon as you log into the system.\n\nYour username for OpenFreezer is '" + u_name + "'.\n\nFor any questions, please refer to http://openfreezer.org. \n\nSincerely,\nOpenFreezer support team.\n--------------------------------\nThis is an automatically generated e-mail message. Please do not reply to this e-mail. All questions should be directed to your local administrator." ) ) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) server.sendmail(from_email, to_email, msg.as_string()) server.quit() utils.redirect(hostname + "User.php?View=6&Reset=1&uid=" + ` userID `) else: # retry by description if form.has_key("uDesc"): u_descr = form.getvalue("uDesc") # but account for whitespace toks = u_descr.split(" ") tmp_descr = "" for tok in toks: tmp_descr += tok.strip() + " " # strip extra whitespace from end tmp_descr = tmp_descr.strip() userID = uHandler.findUserIDByDescription(tmp_descr) if userID > 0: u_name = uHandler.findUsername(userID) to_email = uHandler.findEmail(userID) uHandler.setUserPropertyValue(userID, "password", new_passwd) email_subject = "OpenFreezer Password Change" msg = email.MIMEMultipart.MIMEMultipart() # msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg["Subject"] = email_subject ############################## # CHANGE TEXT AS NEEDED ############################## msg.attach( email.MIMEText.MIMEText( "Dear " + u_descr + ",\n\nYour password for OpenFreezer has been changed.\n\nYour temporary new password is: " + new_passwd + ".\n\nPlease change the temporary password as soon as you log into the system.\n\nYour username for OpenFreezer is '" + u_name + "'.\n\nPlease refer to http://openfreezer.org for additional support.\n\nSincerely,\nOpenFreezer support team.\n--------------------------------\nThis is an automatically generated e-mail message. Please do not reply to this e-mail. All questions should be directed to <a href='mailto:" + mail_admin + "'>" + mail_admin + "</a>" ) ) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) server.sendmail(from_email, to_email, msg.as_string()) server.quit() utils.redirect(hostname + "User.php?View=6&Reset=1&uid=" + ` userID `) else: utils.redirect(hostname + "User.php?View=6&Reset=0") else: utils.redirect(hostname + "User.php?View=6&Reset=0") else: utils.redirect(hostname + "User.php?View=6&Reset=0") cursor.close() db.close()
def handle(self): db = self.__db cursor = self.__cursor hostname = self.__hostname mail_server = self.__mail_server # August 19, 2011 mail_admin = self.__mail_admin # August 19, 2011 clone_request = self.__clone_request form = cgi.FieldStorage(keep_blank_values="True") uHandler = UserHandler(db, cursor) #print "Content-type:text/html" # TEMPORARY, REMOVE AFTER DEBUGGING TO HAVE SCRIPT REDIRECT PROPERLY!!!!!! #print # DITTO #print `form` if form.has_key("curr_username"): # store the user ID for use throughout the session; add to other views in addition to create in PHP currUname = form.getvalue("curr_username") currUser = uHandler.getUserByDescription(currUname) Session.setUser(currUser) elif form.has_key("curr_user_id"): currUID = form.getvalue("curr_user_id") currUser = uHandler.getUserByID(currUID) Session.setUser(currUser) if form.has_key("add_user"): self.addUser(form) elif form.has_key("modify_user"): self.modifyUser(form) elif form.has_key("cancel_user"): self.cancelUserModification(form) elif form.has_key("save_user"): self.saveUser(form) elif form.has_key("delete_user"): self.deleteUser(form) elif form.has_key("view_user") and form.getvalue( "view_user") != "" and not form.has_key( "modify_lab") and not form.has_key("delete_lab"): self.viewUser(form) # Nov. 17/07 - Personal user page elif form.has_key("view_user") and form.getvalue( "view_user") == "" and not form.has_key( "modify_lab") and not form.has_key("delete_lab"): self.printUserInfo('view', currUser) elif form.has_key("add_lab"): self.addLab(form) elif form.has_key("view_lab"): self.viewLab(form) elif form.has_key("modify_lab"): self.modifyLab(form) elif form.has_key("save_lab"): self.saveLab(form) elif form.has_key("cancel_lab"): self.cancelLabModification(form) elif form.has_key("delete_lab"): self.deleteLab(form) elif form.has_key("bug_report"): self.submitBug(form) elif form.has_key("send_order"): ###################################################################### # CHANGE SERVER NAME AND EMAIL TO YOUR LOCAL CREDENTIALS ###################################################################### userID = form.getvalue("curr_user_id") userDescr = form.getvalue("curr_username") from_email = uHandler.findEmail(userID) if not from_email: from_email = userDescr to_email = clone_request email_subject = userDescr + ": Clone Request" f_in = form.getvalue("outputContent") infile = open(f_in, 'rb') msg = email.MIMEMultipart.MIMEMultipart() #msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg['Subject'] = email_subject part = email.MIMEBase.MIMEBase('application', "octet-stream") part.set_payload(infile.read()) email.Utils.base64.standard_b64encode(infile.read()) part.add_header( 'Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f_in)) msg.attach(part) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) # Send a request to your clone request address server.sendmail(from_email, to_email, msg.as_string()) # AND send a copy to the user (change the subject) #msg['Subject'] = "Clone request confirmation" # doesn't change, investigate later # Return email text changed March 31/08 ####################################### # CHANGE TEXT AS NEEDED ####################################### msg.attach( email.MIMEText.MIMEText( "This is a copy of your clone request. Please retain for your records. You will be notified by e-mail when your clone is ready." )) server.sendmail(to_email, from_email, msg.as_string()) server.quit() # Method 2 #sendmail = "/usr/sbin/sendmail" #o = os.popen("%s -t" % sendmail,"w") #o.write("To: %s\r\n" % to_email) #if from_email: #o.write("From: %s\r\n" % from_email) #o.write("Subject: %s\r\n" % email_subject) #o.write("\r\n") #o.write("%s\r\n" % msg) #o.close() os.remove(f_in) # delete the file from /tmp dir utils.redirect(hostname + "User.php?View=8&Sent=1") # June 1, 2010: Automated password reset elif form.has_key("reset_pw"): # change June 2, 2010: Don't enter email, rather, ask users to enter their username - more secure #to_email = form.getvalue("email") from_email = mail_admin #success = True chars = string.letters + string.digits new_passwd = "" for i in range(10): new_passwd += choice(chars) # reset it in the database if form.has_key("uName"): u_name = form.getvalue("uName") userID = uHandler.findUserIDByUsername(u_name) if userID > 0: u_descr = uHandler.findDescription(userID) to_email = uHandler.findEmail(userID) uHandler.setUserPropertyValue(userID, 'password', new_passwd) email_subject = "OpenFreezer Password Change" msg = email.MIMEMultipart.MIMEMultipart() #msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg['Subject'] = email_subject ################################### # CHANGE TEXT AS NEEDED ################################### msg.attach( email.MIMEText.MIMEText( "Dear " + u_descr + ",\n\nYour password for OpenFreezer has been changed.\n\nYour temporary new password is: " + new_passwd + ".\n\nPlease change the temporary password as soon as you log into the system.\n\nYour username for OpenFreezer is '" + u_name + "'.\n\nFor any questions, please refer to http://openfreezer.org. \n\nSincerely,\nOpenFreezer support team.\n--------------------------------\nThis is an automatically generated e-mail message. Please do not reply to this e-mail. All questions should be directed to your local administrator." )) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) server.sendmail(from_email, to_email, msg.as_string()) server.quit() utils.redirect(hostname + "User.php?View=6&Reset=1&uid=" + ` userID `) else: # retry by description if form.has_key("uDesc"): u_descr = form.getvalue("uDesc") # but account for whitespace toks = u_descr.split(" ") tmp_descr = "" for tok in toks: tmp_descr += tok.strip() + " " # strip extra whitespace from end tmp_descr = tmp_descr.strip() userID = uHandler.findUserIDByDescription(tmp_descr) if userID > 0: u_name = uHandler.findUsername(userID) to_email = uHandler.findEmail(userID) uHandler.setUserPropertyValue( userID, 'password', new_passwd) email_subject = "OpenFreezer Password Change" msg = email.MIMEMultipart.MIMEMultipart() #msg.attach(email.MIMEText.MIMEText(infile.read())) # no, this attaches plain text msg['Subject'] = email_subject ############################## # CHANGE TEXT AS NEEDED ############################## msg.attach( email.MIMEText.MIMEText( "Dear " + u_descr + ",\n\nYour password for OpenFreezer has been changed.\n\nYour temporary new password is: " + new_passwd + ".\n\nPlease change the temporary password as soon as you log into the system.\n\nYour username for OpenFreezer is '" + u_name + "'.\n\nPlease refer to http://openfreezer.org for additional support.\n\nSincerely,\nOpenFreezer support team.\n--------------------------------\nThis is an automatically generated e-mail message. Please do not reply to this e-mail. All questions should be directed to <a href='mailto:" + mail_admin + "'>" + mail_admin + "</a>")) server = smtplib.SMTP(mail_server) server.set_debuglevel(1) server.sendmail(from_email, to_email, msg.as_string()) server.quit() utils.redirect(hostname + "User.php?View=6&Reset=1&uid=" + ` userID `) else: utils.redirect(hostname + "User.php?View=6&Reset=0") else: utils.redirect(hostname + "User.php?View=6&Reset=0") else: utils.redirect(hostname + "User.php?View=6&Reset=0") cursor.close() db.close()