| #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 |