blob: 826428308b37ebd7d16866a107a10071876748cc [file]
#include "override_json.h"
#include "authorizer_enums.h"
#include <nlohmann/json.hpp>
#include "override.h"
#include "redfish_privileges.h"
#include "redfish_privileges_json.h"
namespace milotic::authz {
nlohmann::json::object_t OverrideToJson(const Override& override) {
nlohmann::json::object_t json;
json["Targets"] = override.GetOverrideTargets();
for (const auto& [operation, privilege_sets] : override.GetOperationMap()) {
nlohmann::json& operation_json =
json["OperationMap"][ecclesia::OperationToString(operation)];
operation_json = nlohmann::json::array_t();
for (const RedfishPrivileges& privilege_set : privilege_sets) {
operation_json.push_back(RedfishPrivilegesToJson(privilege_set));
}
}
return json;
}
} // namespace milotic::authz