bool ParseJsonToUsers()

in src/oslogin_utils.cc [551:576]


bool ParseJsonToUsers(const string& json, std::vector<string>* result) {
  bool ret = false;

  json_object* root = ParseJsonRoot(json);
  if (root == NULL) {
    return ret;
  }
  json_object* users = NULL;
  if (!json_object_object_get_ex(root, "usernames", &users)) {
    ret = true; // means no users, not invalid.
    goto cleanup;
  }
  if (json_object_get_type(users) != json_type_array) {
    goto cleanup;
  }
  for (int idx=0; idx < (int)json_object_array_length(users); idx++) {
    json_object* user = json_object_array_get_idx(users, idx);
    const char* username = json_object_get_string(user);
    result->push_back(string(username));
  }
  ret = true;

cleanup:
  json_object_put(root);
  return ret;
}