docs: def _process_get_perm_resp(url, post_response, campus, calendarid):
      """
      :return: a list of trumba.Permission objects
               sorted by descending level and ascending uwnetid
               None if error, [] if not exists
      If the response is successful, process the response data
      and load into the return objects
      otherwise raise DataFailureException
      """
      request_id = "%s %s CalendarID:%s" % (campus, url, calendarid)
      data = _load_json(request_id, post_response)
      permission_list = []
      if data['d']['Users'] is not None and len(data['d']['Users']) > 0:
          _load_permissions(campus, calendarid,
                            data['d']['Users'],
                            permission_list)
      return sorted(permission_list)