code: def authenticate(self):
          
  
          # if authentication has been performed, return last result
          if self._authenticated is not None:
              return self._authenticated
  
          self._logger.debug('Trying to authenticate as user \'%s\'' % self.username)
  
          user = self.get_user(self.username)
          # Was user found?
          if user is None:
              self._logger.debug('unknown user %s' % self.username)
              self._authenticated = False
              return self._authenticated
  
          # verify password
          if self._gen_hash(self.password, user['pwd_salt']) != user['pwd_hash']:
              # Auth failed
              self._logger.debug('erroneous password for user %s' % self.username)
              self._authenticated = False
              return self._authenticated
  
          # auth succeeded
          self.authenticated_as = self.username
          self._authenticated = True
          self.trusted = bool(user['trusted'])
          self.readonly = bool(user['readonly'])
  
          if self.trusted:
              # user can impersonate other users
              # this also means that a system and full_name can be specified
              if 'username' in self._auth_options:
                  self.username = self._auth_options['username']
  
              # TODO: b0rk out if full_name is supplied and username not?
              if 'full_name' in self._auth_options:
                  self.full_name = self._auth_options['full_name']
  
              if 'authoritative_source' in self._auth_options:
                  self.authoritative_source = self._auth_options['authoritative_source']
  
              if 'readonly' in self._auth_options:
                  self.readonly = self._auth_options['readonly']
  
          else:
              self.full_name = user['full_name']
  
          self._logger.debug('successfully authenticated as %s, username %s, full_name %s, readonly %s' % (self.authenticated_as, self.username, self.full_name, str(self.readonly)))
          return self._authenticated
docs: Verify authentication.
  
              Returns True/False dependant on whether the authentication
              succeeded or not.