示例#1
0
    def post(self):
        user = Authenticate(self.request)
        if user:
            return self.redirect("/")

        # get signup params
        username = self.request.get("username")
        password = self.request.get("password")
        passwordrepeat = self.request.get("passwordrepeat")

        # validate
        if not (username and password and password == passwordrepeat):
            return self.redirect("/signup")

        # checK if username is available
        userNamePresent = User.query(User.name == username).get()
        if userNamePresent:
            return self.redirect("/signup")

        # hash pw
        pw_hash = hashes.make_pw_hash(username, password)
        # create new user
        u = User(name=username, pw_hash=pw_hash)
        u.put()
        # set cookies.
        SetLoginCookies(self, u)
        return self.redirect("/")
    def post(self):
        user = Authenticate(self.request)
        if user:
            return self.redirect("/")

        # get signup params
        username       = self.request.get("username")
        password       = self.request.get("password")
        passwordrepeat = self.request.get("passwordrepeat")

        # validate
        if not (username and password and password == passwordrepeat):
            return self.redirect("/signup")

        # checK if username is available
        userNamePresent  = User.query(User.name==username).get()
        if userNamePresent:
            return self.redirect("/signup")

        # hash pw
        pw_hash = hashes.make_pw_hash(username, password)
        # create new user
        u = User(name=username,pw_hash=pw_hash)
        u.put()
        # set cookies.
        SetLoginCookies(self, u)
        return self.redirect("/")
示例#3
0
def SetUserPassword(user, new_password):
    user.pw_hash = hashes.make_pw_hash(user.email, new_password)
    user.put()
    time.sleep(0.1)
示例#4
0
def AddAdmin(name, password, email):
    # TODO: Validate the fields (check valid, no-duplicates).
    pw_hash = hashes.make_pw_hash(name, password)
    a = Admin(name=name, pw_hash=pw_hash, email=email)
    a.active = True
    a.put()
示例#5
0
    def post(self):
        # Get parameters (code, name, email, pw, etc.)
        # Validate params
        # Create new User and populate
        # Attach new user and code
        # Set cookies
        # Redirect to home

        code = self.request.get("code")
        fname = self.request.get("first_name")
        lname = self.request.get("last_name")
        name = " ".join([fname, lname])
        phone = self.request.get("phone")
        email = self.request.get("email")
        aux_email = self.request.get("aux_email")
        password = self.request.get("password")
        password_repeat = self.request.get("password_repeat")

        # validation
        message_text = ""
        if not name:
            message_text = getMessage("regnameerror")
        if not message_text and not phone:
            message_text = getMessage("regphoneerror")
        if not message_text and not email:
            message_text = getMessage("regemailerror")
        if not message_text and not password:
            message_text = getMessage("regpasserror")
        if not message_text and not password or not password == password_repeat:
            message_text = getMessage("regpassrepeaterror")
        if message_text:
            return self.render(
                "/reg_continue.html",
                code=code,
                fname=fname,
                lname=lname,
                email=email,
                aux_email=aux_email,
                phone=phone,
                message_text=message_text,
            )

        reg_code = UserRegistrationCode.query(
            UserRegistrationCode.code == code).get()
        if not reg_code:
            return self.redirect("/")

        # ChecK that this name/email was not used before.
        userNamePresent = User.query().filter(User.name == name).get()
        userEmailPresent = User.query().filter(User.email == email).get()
        if userNamePresent or userEmailPresent:
            return self.redirect("/")

        # Create pw hash
        pw_hash = hashes.make_pw_hash(email, password)
        # Create new User and populate.
        # Make empty subscription, save to db.
        u = User(name=name, pw_hash=pw_hash, phone=phone, email=email)
        u.used_codes.append(reg_code.key)
        u.rests.append(reg_code.rest)
        s = Subscription(typeOf='empty')
        u.put()
        # Attach user, code, rest and subscription.
        reg_code.users.append(u.key)
        reg_code.last_used = datetime.datetime.now()
        reg_code.uses = reg_code.uses + 1
        reg_code.put()
        rest = reg_code.rest.get()
        rest.users.append(u.key)
        rest.put()
        s.user = u.key
        s.rest = rest.key
        s.put()
        u.subscriptions.append(s.key)
        u.put()
        # Create and set cookies.
        SetLoginCookies(self, u)
        # Inactive (by default), send an activation email.
        SendActivationEmail(u)
        return self.redirect("/activation_required")
示例#6
0
    def post(self):
        # Get parameters (code, name, email, pw, etc.)
        # Validate params
        # Create new User and populate
        # Attach new user and code
        # Set cookies
        # Redirect to home

        code  = self.request.get("code")
        fname = self.request.get("first_name")
        lname = self.request.get("last_name")
        name = " ".join([fname, lname])
        phone = self.request.get("phone")
        email = self.request.get("email")
        aux_email = self.request.get("aux_email")
        password = self.request.get("password")
        password_repeat = self.request.get("password_repeat")

        # validation
        message_text = ""
        if not name:
            message_text = getMessage("regnameerror")
        if not message_text and not phone:
            message_text = getMessage("regphoneerror")
        if not message_text and not email:
            message_text = getMessage("regemailerror")
        if not message_text and not password:
            message_text = getMessage("regpasserror")
        if not message_text and not password or not password == password_repeat:
            message_text = getMessage("regpassrepeaterror")
        if message_text:
            return self.render("/reg_continue.html",
                    code=code,
                    fname=fname, lname=lname,
                    email=email, aux_email=aux_email,
                    phone=phone, message_text=message_text,
                    )

        reg_code = UserRegistrationCode.query(UserRegistrationCode.code==code).get()
        if not reg_code:
            return self.redirect("/")

        # ChecK that this name/email was not used before.
        userNamePresent  = User.query().filter(User.name==name).get()
        userEmailPresent = User.query().filter(User.email==email).get()
        if userNamePresent or userEmailPresent:
            return self.redirect("/")    

        # Create pw hash
        pw_hash = hashes.make_pw_hash(email, password)
        # Create new User and populate. 
        # Make empty subscription, save to db.
        u = User(name=name,pw_hash=pw_hash, phone=phone, email=email)
        u.used_codes.append(reg_code.key)
        u.rests.append(reg_code.rest)
        s = Subscription(typeOf='empty')
        u.put()
        # Attach user, code, rest and subscription.
        reg_code.users.append(u.key)
        reg_code.last_used = datetime.datetime.now()
        reg_code.uses = reg_code.uses + 1
        reg_code.put()
        rest = reg_code.rest.get()
        rest.users.append(u.key)
        rest.put()
        s.user = u.key
        s.rest = rest.key
        s.put()
        u.subscriptions.append(s.key)
        u.put()
        # Create and set cookies.
        SetLoginCookies(self, u)
        # Inactive (by default), send an activation email.
        SendActivationEmail(u)
        return self.redirect("/activation_required")
示例#7
0
def SetUserPassword(user, new_password):
    user.pw_hash = hashes.make_pw_hash(user.email, new_password)
    user.put()
    time.sleep(0.1)
示例#8
0
def AddAdmin(name, password, email):
    # TODO: Validate the fields (check valid, no-duplicates).
    pw_hash = hashes.make_pw_hash(name, password)
    a = Admin(name=name,pw_hash=pw_hash,email=email)
    a.active = True
    a.put()