示例#1
0
 def post(self):
     args = parser.parse_args()
     if db.hexists('accounts_search', args.account_pseudo) != 0 or db.hexists('accounts_search', args.account_email) != 0:
         abort(403, message="account name or email already in database")
     UUID = str(uuid4())
     # print(UUID)
     args.account_characters = []
     args.account_key = UUID
     args.rts_account_key = "not yet linked"
     account = json.dumps(args)
     data = {UUID: account}
     # print(data)
     # print(type(data))
     db.hmset('accounts', data)
     db.hset('accounts_search', args.account_pseudo, UUID)
     db.hset('accounts_search', args.account_email, UUID)
     return UUID, 200
示例#2
0
def checkPseudoHash(pseudo, account_hash):
    # print(db.hget('accounts', UUID))
    response = True
    if not db.hexists('accounts_search', pseudo):
        if not (communication_core.auth_RTS(pseudo, account_hash)):
            response = False
            abort(404,
                  message="Pseudo or email {} doesn't exist".format(pseudo))
    return response
示例#3
0
文件: quest.py 项目: cybo12/Howob-API
 def get(self, UUID=None):
     if not UUID:
         responses = db.hgetall('quests')
         traited_responses = {}
         for key, value in responses.items():
             if db.hexists('accounts', key) == 0:
                 traited_responses[key] = literal_eval(responses[key])
     else:
         checkUUID(UUID)
         traited_responses = literal_eval(db.hget('quests', UUID))
     # print(traited_responses)
     return traited_responses, 200
示例#4
0
 def put(self):
     logging.info("patch auth RTS")
     logging.info("no processed data receive : {}".format(request.data))
     args = parser.parse_args()
     args.account_hash = args.account_hash.upper()
     checkPseudo(args.account_login)
     account = checkAuth(args.account_login, args.account_hash, False)
     if (db.hexists('accounts_search', account["rts_account_key"])):
         db.hdel('accounts_search', account["rts_account_key"])
     account["rts_account_key"] = args.rts_account_key
     logging.info("change for {}".format(account))
     db.hset('accounts_search', args.rts_account_key,
             account["account_key"])
     db.hset('accounts', account["account_key"], json.dumps(account))
     # test = str(request.__dict__)
     # res = make_response(test, 200)
     return 'modified', 200
示例#5
0
def auth_RTS(pseudo, hashed_password):
    response = True
    payload = dict()
    payload["user_name"] = pseudo
    payload["hashed_password"] = hashed_password
    url = 'https://RTS/api/authentication_player'
    headers = {'Content-Type': 'application/json'}
    try:
        r = requests.post(url,
                          headers=headers,
                          data=json.dumps(payload),
                          auth=('user', 'PWD+'),
                          verify=False)
        if r.status_code == 200:
            if not db.hexists('accounts_search', pseudo):
                createRTSAccount(json.loads(r.text)["user_name"])
        else:
            logging.info(f"RTS SATUTS CODE: {r.status_code}")
            response = False
    except requests.exceptions.RequestException as e:
        response = False
        logging.info(e)
    return response
示例#6
0
def checkUUID(UUID):
    # print(db.hget('classe', UUID))
    if not db.hexists('classes', UUID):
        abort(404, message="UUID {} doesn't exist".format(UUID))
    return True
示例#7
0
def checkUUID(UUID, target):
    # print(db.hget('characters', UUID)
    if not db.hexists(target, UUID):
        abort(404, message="UUID {} doesn't exist".format(UUID))
    return True
示例#8
0
def checkPseudo(pseudo):
    # print(db.hget('accounts', UUID))
    if not db.hexists('accounts_search', pseudo):
        abort(404, message="Pseudo or email {} doesn't exist".format(pseudo))
    return True