コード例 #1
0
ファイル: character.py プロジェクト: jon-stewart/mud
    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()
コード例 #2
0
ファイル: user.py プロジェクト: jon-stewart/mud
    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)