Exemplo n.º 1
0
 def post(self):
     username = self.request.get('username')
     password = self.request.get('password')
     verify = self.request.get('verify')
     email = self.request.get('email')
     uError = pError = vError = eError = ''
     if not validUser(username): uError = 'That is not a valid user name.'
     else:
         q = db.GqlQuery('select * from User where name = :1', username)
         user = q.get()
         if user: uError = 'That user name already exists'
     if not validPassword(password):
         pError = 'That is not a valid password.'
     if password != verify: vError = 'The passwords do not match.'
     if email and not validEmail(email):
         eError = 'That is not a valid email address.'
     if uError or pError or vError or eError:
         self.render_signup(username, uError, pError, vError, email, eError)
     else:
         pwHasher = PasswordHash()
         pwHash = pwHasher.make_pw_hash(username, password)
         user = User(name = username, pwHash = pwHash, email = email)
         user.put()
         cookieHasher = CookieHash()
         cookieHash = cookieHasher.make_secure_val(str(user.key().id()))
         self.response.set_cookie('user_id', cookieHash)
         url = self.request.url
         url = url[:url.rfind('/signup')]
         url = url[url.rfind('/') + 1:]
         self.redirect('/%s/' % url)
Exemplo n.º 2
0
 def post(self):
     username = self.request.get('username')
     password = self.request.get('password')
     error = ''
     url = self.request.url
     url = url[:url.rfind('/login')]
     url = url[url.rfind('/') + 1:]
     if not validUser(username): error = 'Invalid user name or password.'
     else:
         q = db.GqlQuery('select * from User where name = :1', username)
         user = q.get()
         if not user: error = 'Invalid user name or password.'
     if not validPassword(password):
         error = 'Invalid user name or password.'
     if error: self.render_login(username, error, url)
     else:
         pwHasher = PasswordHash()
         if pwHasher.valid_pw(username, password, user.pwHash):
             cookieHasher = CookieHash()
             cookieHash = cookieHasher.make_secure_val(str(user.key().id()))
             self.response.set_cookie('user_id', cookieHash)
             self.redirect('/%s/' % url)
         else:
             error = 'Invalid user name or password.'
             self.render_login(username, error, url)
Exemplo n.º 3
0
    def _convert(self, value):
        """Returns a PasswordHash from the given string.

        PasswordHash instances or None values will return unchanged.
        Strings will be hashed and the resulting PasswordHash returned.
        Any other input will result in a TypeError.
        """
        if isinstance(value, PasswordHash):
            return value
        elif isinstance(value, basestring):
            return PasswordHash.new(value, self.rounds)
        elif value is not None:
            raise TypeError(
                'Cannot convert {} to a PasswordHash'.format(type(value)))
Exemplo n.º 4
0
 def process_result_value(self, value, dialect):
     """Convert the hash to a PasswordHash, if it's non-NULL."""
     if value is not None:
         return PasswordHash(value, rounds=self.rounds)