Example #1
0
class AccountManager:
    def __init__(self):
        self.DbManager = DbManager()

    def makeHash(self, inputText):
        inputText = inputText.encode()
        hashObject = hashlib.sha256()
        hashObject.update(inputText)
        hexDig = hashObject.hexdigest()
        return hexDig

    def logIn(self, id, pw):

        hexDig = self.makeHash(pw)
        userPw = self.DbManager.readUserPw(id)

        if userPw == (hexDig, ):  #userPw가 튜플임.
            return True
        else:
            return False

    def registerUser(self, id, pw, sQuestionNum, answer):
        pw = self.makeHash(pw)

        answer = self.makeHash(answer)
        self.DbManager.saveUserInfo(id=id,
                                    pw=pw,
                                    sQuestionNum=sQuestionNum,
                                    answer=answer)
        return True

    def deleteId(self, id):
        self.DbManager.deleteUserInfo(id)

    def findId(self, sQuestionNum, answer):
        answer = self.makeHash(answer)

        id = self.DbManager.readUserIdByQA(sQuestionNum, answer)
        if len(id) == 1:
            id = id[0]
        else:
            return -1
        return id

    def resetPw(self, id):
        newPw = 'aXeYCQV'
        newPw = newPw.encode()
        hashObject = hashlib.sha256()
        hashObject.update(newPw)
        hexDig = hashObject.hexdigest()
        newPw = hexDig

        self.DbManager.updatePw(id, newPw)