Ejemplo n.º 1
0
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 ""
Ejemplo n.º 2
0
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>"