def load(self, name): ''' ''' view = database.view("character", "load", name) assert(len(view) == 1) data = view[0]["value"] self._id = data["_id"] self._rev = data["_rev"] self.name = data["name"] self.location = world.enter(self, data["room"]) assert(self.location) self.look()
def auth(self, _): ''' Authenticate the name/password. Ensure hashed password wiped in memory. ''' result = database.view("user", "auth", self.name) assert(len(result) <= 1) if len(result) and (self.pw == result[0]["value"]): self.send("Authenticated") self.character.load(self.name) self.shift(UserState.active, True) else: self.send("Invalid name/password") self.shift(UserState.prompt_name, True) self.pw = "x" * len(self.pw)