def JoinProcessing(objHere): strEmailAddress = GetParameter(objHere, "EmailAddress") strEmailAddress = strEmailAddress.lower().replace(" ", "") if strEmailAddress and ValidEmailAddress(strEmailAddress): if not GetMemberForEmailAddress(objHere, strEmailAddress): objMember = RegisterNewMember(objHere, strEmailAddress) LoginMember(objMember) objMember.SendPasswordReminder() return objMember.Username return ""
def JoiningPage(objHere): # If doesn't have a form, or blank email address, assume they got to this page directly strStep = GetParameter(objHere, "JoinStep") if not strStep: strStep = "JoinNow" strEmailAddress = GetParameter(objHere, "EmailAddress") strEmailAddress = strEmailAddress.lower().replace(" ", "") strCallingURL = GetParameter(objHere, "CallingURL") if not strCallingURL: strCallingURL = objHere.REQUEST.HTTP_REFERER strCallingURL = RemoveAction(strCallingURL) if strStep == "JoinNow": if not strEmailAddress: return JoiningForm(objHere, strCallingURL, strEmailAddress) if strEmailAddress.lower().replace(" ", "") == "emailaddress": return JoiningForm(objHere, strCallingURL, strEmailAddress) if not ValidEmailAddress(strEmailAddress): return JoiningForm(objHere, strCallingURL, strEmailAddress, "Warning: Invalid email address entered. Please submit a correct email address") objMember = GetCurrentMember(objHere) if not objMember: objMember = GetMemberForEmailAddress(objHere, strEmailAddress) if objMember: objMember.SendPasswordReminder("someone just tried to register using your email address: %s" % strEmailAddress) strErrorMessage = "Warning: This email address is already registered. Please log in (using the form on the left hand side) instead of (re-)joining or enter the correct email address. A reminder of your log in details has been sent to %s" % strEmailAddress else: strErrorMessage = """An unknown error occurred. Please try again or <a href="/ContactDetails">contact the list owner</a>""" return JoiningForm(objHere, strCallingURL, strEmailAddress, strErrorMessage) # Note: Actual creating of new member happens in E3StartStop.JoinProcessing dictLoginDetails = LoadDataFromObject(objMember, ("Username", )) return WelcomeScreen(objMember, strCallingURL, dictLoginDetails) elif strStep == "UpdateLoginDetails": objMember = GetCurrentMember(objHere) lstFields = ("Username", "Password", "PasswordConfirmation") dictLoginDetails = GetDataFromForm(objHere, objHere.REQUEST.form, lstFields) dictErrors = ValidLoginDetails(objMember, dictLoginDetails) if dictErrors: return WelcomeScreen(objMember, strCallingURL, dictLoginDetails, dictErrors = dictErrors) SaveLoginDetails(objMember, dictLoginDetails) dictLoginDetails = LoadDataFromObject(objMember, ("Username", )) objMember.SendPasswordReminder() return WelcomeScreen(objMember, strCallingURL, dictLoginDetails, strLoginMessage = "Log in details updated") elif "SwitchTo" in strStep: objMember = GetCurrentMember(objHere) if strStep == "SwitchToDirectListDelivery": objMember.EmailFrequency_ECL = "Direct" elif strStep == "SwitchToDailyListDigest": objMember.EmailFrequency_ECL = "Daily" elif strStep == "SwitchToDirectAdvertDelivery": objMember.EmailFrequency_ECL_Advert = "Direct" elif strStep == "SwitchToDailyAdvertDigest": objMember.EmailFrequency_ECL_Advert = "Daily" dictLoginDetails = LoadDataFromObject(objMember, ("Username", )) return WelcomeScreen(objMember, strCallingURL, dictLoginDetails, strDeliveryMessage = "Email delivery updated") return "<p>This is the joining page</p>"