def dataprovider_id_if_authorize(resource_id, receipt_token):
    logger.debug("checking authorization token to fetch mask data")
    if not is_receipt_token_valid(resource_id, receipt_token):
        safe_fail_request(403, message=INVALID_ACCESS_MSG)

    dp_id = db.select_dataprovider_id(get_db(), resource_id, receipt_token)
    return dp_id
Example #2
0
def get_permutations_result(project_id, run_id, dbinstance, token,
                            auth_token_type):
    logger.info("Permutations and mask result type being returned")
    if auth_token_type == 'receipt_token':
        logger.debug("auth type receipt_token")
        dp_id = db.select_dataprovider_id(dbinstance, project_id, token)
        perm = db.get_permutation_result(dbinstance, dp_id, run_id)
        rows = db.get_smaller_dataset_size_for_project(dbinstance, project_id)
        result = {'permutation': perm, 'rows': rows}
    elif auth_token_type == "result_token":
        logger.debug("auth type result_token")
        logger.info("Returning unencrypted mask to coordinator")
        # The mask is a json blob of an
        # array of 0/1 ints
        mask = db.get_permutation_unencrypted_mask(dbinstance, project_id,
                                                   run_id)
        result = {"mask": mask}
    else:
        logger.warning("Didn't recognize the auth token type of {}".format(
            auth_token_type))
        safe_fail_request(500,
                          "Unknown error. Please report to the developers")
    return result
def is_receipt_token_valid(resource_id, receipt_token):
    if db.select_dataprovider_id(get_db(), resource_id, receipt_token) is None:
        return False
    else:
        return True
def is_receipt_token_valid(resource_id, receipt_token):
    with DBConn() as conn:
        if db.select_dataprovider_id(conn, resource_id, receipt_token) is None:
            return False
        else:
            return True