def current_user(self): """Returns the logged-in User object.""" u = users.get_current_user() if u: key_name = User.key_name_from_email(u.email()) user = memcache.get(key_name) if user: if not user.banned: return user try: # User models are keyed by user email user = User.get_or_insert(key_name=key_name, user=u) user.invalidate() # cache it if not user.banned: return user except CapabilityDisabledError: pass
def get_user(self, required=False): """Returns the User object given by the URL.""" if self.response_dict().user: return self.response_dict().user key = self.url_arg(0) if key: user = None try: user = User.get(key) except db.BadKeyError: pass if not user: email = urllib.unquote(key) key_name = User.key_name_from_email(email) user = User.get_by_key_name(key_name) if user: self.response_dict(user = user) # for the template return user if required: raise NotFoundException("user not found")