def get_tac_permissions(calendar_id):
    """
    Return a list of sorted Permission objects representing
    the user permissions of a given Tacoma calendar.
    :return: a list of trumba.Permission objects
             corresponding to the given campus calendar.
             None if error, [] if not exists
    raise DataFailureException or a corresponding TrumbaException
    if the request failed or an error code has been returned.
    """
    return _process_get_perm_resp(
        get_permissions_url,
        post_tac_resource(get_permissions_url,
                          _create_get_perm_body(calendar_id)),
        TrumbaCalendar.TAC_CAMPUS_CODE,
        calendar_id)