Remove ambiguous privileges constructor
There are a number of endpoints that assume that a given routes
privileges are governed by a single set of privileges, instead of
multiple sets ORed together. To handle this, there were two overloads
of the privileges() method, one that took a vector of Privileges, and
one that took an initializer_list of const char*. Unfortunately, this
leads some code in AccountService to pick the wrong overload when it's
called like this
.privileges( {{"ConfigureUsers"}, {"ConfigureManager"},
{"ConfigureSelf"}})
This is supposed to be "User must have ConfigureUsers, or
ConfigureManager, or ConfigureSelf". Currently, because it selects the
wrong overload, it computes to "User must have ConfigureUsers AND
ConfigureManager AND ConfigureSelf.
The double braces are supposed to cause this to form a vector of
Privileges, but it appears that the initializer list gets consumed, and
the single invocation of initializer list is called. Interestingly,
trying to put in a privileges overload of
intializer_list<initializer_list<const char*>> causes the compilation to
fail with an ambiguous call error, which is what I would've expected to
see previously in this case, but alas, I'm only a novice when it comes
to how the C++ standard works in these edge cases. This is likely due
in part to the fact that they were templates of an unused template param
(seemingly copied from the previous method) and SFINAE rules around
templates.
This commit functionally removes one of the privileges overloads, and
adds a second set of braces to every privileges call that previously had
a single set of braces. Previous code will not compile now, which is
IMO a good thing.
This likely popped up in the Node class removal, because the Node class
explicitly constructs a vector of Privilege objects, ensuing it can hit
the right overload
Tested:
Ran Redfish service validator
Tested the specific use case outlined on discord with:
Creating a new user with operator privilege:
```
redfishtool -S Always -u root -p 0penBmc -vvvvvvvvv -r 192.168.7.2
AccountService adduser foo mysuperPass1 Operator
```
Then attempting to list accounts:
```
curl -vvvv --insecure --user foo:mysuperPass1
https://192.168.7.2/redfish/v1/AccountService/Accounts/foo
```
Which succeeded and returned the account in question.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I83e62b70e97f56dc57d43b9081f333a02fe85495
diff --git a/http/routing.hpp b/http/routing.hpp
index dd07523..af6269e 100644
--- a/http/routing.hpp
+++ b/http/routing.hpp
@@ -433,19 +433,11 @@
return *self;
}
- template <typename... MethodArgs>
- self_t& privileges(std::initializer_list<const char*> l)
+ self_t& privileges(
+ const std::initializer_list<std::initializer_list<const char*>>& p)
{
self_t* self = static_cast<self_t*>(this);
- self->privilegesSet.emplace_back(l);
- return *self;
- }
-
- template <typename... MethodArgs>
- self_t& privileges(const std::vector<redfish::Privileges>& p)
- {
- self_t* self = static_cast<self_t*>(this);
- for (const redfish::Privileges& privilege : p)
+ for (const std::initializer_list<const char*>& privilege : p)
{
self->privilegesSet.emplace_back(privilege);
}
diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 4337467..7fd346e 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -105,7 +105,7 @@
inline void requestRoutes(App& app)
{
BMCWEB_ROUTE(app, "/subscribe")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.websocket()
.onopen([&](crow::websocket::Connection& conn,
const std::shared_ptr<bmcweb::AsyncResp>&) {
diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index d5ee590..d6a4992 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -688,7 +688,7 @@
// allowed only for admin
BMCWEB_ROUTE(app, "/ibm/v1/")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -706,7 +706,7 @@
});
BMCWEB_ROUTE(app, "/ibm/v1/Host/ConfigFiles")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -715,7 +715,7 @@
BMCWEB_ROUTE(app,
"/ibm/v1/Host/ConfigFiles/Actions/IBMConfigFiles.DeleteAll")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -723,7 +723,7 @@
});
BMCWEB_ROUTE(app, "/ibm/v1/Host/ConfigFiles/<str>")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::put, boost::beast::http::verb::get,
boost::beast::http::verb::delete_)(
[](const crow::Request& req,
@@ -741,7 +741,7 @@
});
BMCWEB_ROUTE(app, "/ibm/v1/HMC/LockService")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -749,7 +749,7 @@
});
BMCWEB_ROUTE(app, "/ibm/v1/HMC/LockService/Actions/LockService.AcquireLock")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -765,7 +765,7 @@
handleAcquireLockAPI(req, asyncResp, body);
});
BMCWEB_ROUTE(app, "/ibm/v1/HMC/LockService/Actions/LockService.ReleaseLock")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -797,7 +797,7 @@
}
});
BMCWEB_ROUTE(app, "/ibm/v1/HMC/LockService/Actions/LockService.GetLockList")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -814,7 +814,7 @@
});
BMCWEB_ROUTE(app, "/ibm/v1/HMC/BroadcastService")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/include/image_upload.hpp b/include/image_upload.hpp
index 651d242..1a0ace0 100644
--- a/include/image_upload.hpp
+++ b/include/image_upload.hpp
@@ -108,14 +108,14 @@
inline void requestRoutes(App& app)
{
BMCWEB_ROUTE(app, "/upload/image/<str>")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post, boost::beast::http::verb::put)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
const std::string&) { uploadImageHandler(req, asyncResp); });
BMCWEB_ROUTE(app, "/upload/image")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::post, boost::beast::http::verb::put)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index 8bc955d..a9dc8ea 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -159,7 +159,7 @@
sessions.reserve(maxSessions);
BMCWEB_ROUTE(app, "/kvm/0")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.websocket()
.onopen([](crow::websocket::Connection& conn,
const std::shared_ptr<bmcweb::AsyncResp>&) {
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index cdb1990..478649a 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -117,7 +117,7 @@
inline void requestRoutes(App& app)
{
BMCWEB_ROUTE(app, "/console0")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.websocket()
.onopen([](crow::websocket::Connection& conn,
const std::shared_ptr<bmcweb::AsyncResp>&) {
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index b988095..298298b 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -2068,7 +2068,7 @@
inline void requestRoutes(App& app)
{
BMCWEB_ROUTE(app, "/bus/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2077,7 +2077,7 @@
});
BMCWEB_ROUTE(app, "/bus/system/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2107,7 +2107,7 @@
});
BMCWEB_ROUTE(app, "/list/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2115,7 +2115,7 @@
});
BMCWEB_ROUTE(app, "/xyz/<path>")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2125,7 +2125,7 @@
});
BMCWEB_ROUTE(app, "/xyz/<path>")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::put, boost::beast::http::verb::post,
boost::beast::http::verb::delete_)(
[](const crow::Request& req,
@@ -2136,7 +2136,7 @@
});
BMCWEB_ROUTE(app, "/org/<path>")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2146,7 +2146,7 @@
});
BMCWEB_ROUTE(app, "/org/<path>")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::put, boost::beast::http::verb::post,
boost::beast::http::verb::delete_)(
[](const crow::Request& req,
@@ -2157,7 +2157,7 @@
});
BMCWEB_ROUTE(app, "/download/dump/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2227,7 +2227,7 @@
});
BMCWEB_ROUTE(app, "/bus/system/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
@@ -2239,7 +2239,7 @@
});
BMCWEB_ROUTE(app, "/bus/system/<str>/<path>")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.methods(boost::beast::http::verb::get, boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index a175f0a..02f958a 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -156,7 +156,7 @@
inline void requestRoutes(App& app)
{
BMCWEB_ROUTE(app, "/vm/0/0")
- .privileges({"ConfigureComponents", "ConfigureManager"})
+ .privileges({{"ConfigureComponents", "ConfigureManager"}})
.websocket()
.onopen([](crow::websocket::Connection& conn,
const std::shared_ptr<bmcweb::AsyncResp>&) {
diff --git a/redfish-core/lib/bios.hpp b/redfish-core/lib/bios.hpp
index de6f9a1..4ea0727 100644
--- a/redfish-core/lib/bios.hpp
+++ b/redfish-core/lib/bios.hpp
@@ -10,7 +10,7 @@
inline void requestRoutesBiosService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -41,7 +41,7 @@
inline void requestRoutesBiosReset(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Bios/Actions/Bios.ResetBios/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/certificate_service.hpp b/redfish-core/lib/certificate_service.hpp
index 0e26a86..c1861ca 100644
--- a/redfish-core/lib/certificate_service.hpp
+++ b/redfish-core/lib/certificate_service.hpp
@@ -42,7 +42,7 @@
inline void requestRoutesCertificateService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/CertificateService/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -228,7 +228,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/CertificateService/Actions/"
"CertificateService.GenerateCSR/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -667,7 +667,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/CertificateService/Actions/"
"CertificateService.ReplaceCertificate/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
post)([](const crow::Request& req,
@@ -785,7 +785,7 @@
BMCWEB_ROUTE(
app,
"/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request& req,
@@ -819,7 +819,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -864,7 +864,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -971,7 +971,7 @@
inline void requestRoutesCertificateLocations(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/CertificateService/CertificateLocations/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -1010,7 +1010,7 @@
inline void requestRoutesLDAPCertificateCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/AccountService/LDAP/Certificates/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1056,7 +1056,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/AccountService/LDAP/Certificates/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1113,7 +1113,7 @@
inline void requestRoutesLDAPCertificate(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/AccountService/LDAP/Certificates/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1144,7 +1144,7 @@
inline void requestRoutesTrustStoreCertificateCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/Truststore/Certificates/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1188,7 +1188,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/Truststore/Certificates/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1246,7 +1246,7 @@
inline void requestRoutesTrustStoreCertificate(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/Truststore/Certificates/<str>/")
- .privileges({"Loign"})
+ .privileges({{"Loign"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1272,7 +1272,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/Truststore/Certificates/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 80c5c50..b072818 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -162,7 +162,7 @@
inline void requestRoutesChassisCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -185,7 +185,7 @@
inline void requestRoutesChassis(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
@@ -441,7 +441,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
patch)([](const crow::Request& req,
@@ -640,7 +640,7 @@
inline void requestRoutesChassisResetAction(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Actions/Chassis.Reset/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -675,7 +675,7 @@
inline void requestRoutesChassisResetActionInfo(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/ResetActionInfo/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/ethernet.hpp b/redfish-core/lib/ethernet.hpp
index 5040f9e..49aa3db 100644
--- a/redfish-core/lib/ethernet.hpp
+++ b/redfish-core/lib/ethernet.hpp
@@ -1829,7 +1829,7 @@
inline void requestEthernetInterfacesRoutes(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/EthernetInterfaces/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -1878,7 +1878,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1914,7 +1914,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2064,7 +2064,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/VLANs/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& /* req */,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2106,7 +2106,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/VLANs/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2186,7 +2186,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/VLANs/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request& /* req */,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2238,7 +2238,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/VLANs/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request& /* req */,
@@ -2296,7 +2296,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/EthernetInterfaces/<str>/VLANs/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index abc21ec..bd11751 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -40,7 +40,7 @@
inline void requestRoutesEventService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/EventService/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -83,7 +83,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/EventService/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -149,7 +149,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/EventService/Actions/EventService.SubmitTestEvent/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -161,7 +161,7 @@
inline void requestRoutesEventDestinationCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -188,7 +188,7 @@
}
});
BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -484,7 +484,7 @@
inline void requestRoutesEventDestination(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -536,7 +536,7 @@
/////redfish/v1/EventService/Subscriptions/
// ConfigureManager
BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -589,7 +589,7 @@
EventServiceManager::getInstance().updateSubscriptionData();
});
BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/hypervisor_system.hpp b/redfish-core/lib/hypervisor_system.hpp
index e785038..5274e53 100644
--- a/redfish-core/lib/hypervisor_system.hpp
+++ b/redfish-core/lib/hypervisor_system.hpp
@@ -725,7 +725,7 @@
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/hypervisor/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -769,7 +769,7 @@
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/hypervisor/EthernetInterfaces/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -825,7 +825,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/hypervisor/EthernetInterfaces/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
@@ -856,7 +856,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/hypervisor/EthernetInterfaces/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
patch)([](const crow::Request& req,
@@ -970,7 +970,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Systems/hypervisor/ResetActionInfo/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1029,7 +1029,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/hypervisor/Actions/ComputerSystem.Reset/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index d3a5f6f..e080634 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -908,7 +908,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -979,7 +979,7 @@
inline void requestRoutesEventLogService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/EventLog/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -1007,7 +1007,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1142,7 +1142,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/EventLog/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1236,7 +1236,7 @@
{
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1297,7 +1297,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/EventLog/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -1470,7 +1470,7 @@
{
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1601,7 +1601,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1634,7 +1634,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1684,7 +1684,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/EventLog/Entries/"
"<str>/attachment")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1794,7 +1794,7 @@
inline void requestRoutesBMCLogServiceCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1829,7 +1829,7 @@
inline void requestRoutesBMCJournalLogService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Journal/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -1915,7 +1915,7 @@
inline void requestRoutesBMCJournalLogEntryCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Journal/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2005,7 +2005,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/LogServices/Journal/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2074,7 +2074,7 @@
inline void requestRoutesBMCDumpService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Dump/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2106,7 +2106,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Dump/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2126,7 +2126,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/LogServices/Dump/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2135,7 +2135,7 @@
});
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/LogServices/Dump/Entries/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2150,7 +2150,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Dump/"
"Actions/"
"LogService.CollectDiagnosticData/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2163,7 +2163,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/LogServices/Dump/"
"Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2174,7 +2174,7 @@
inline void requestRoutesSystemDumpService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Dump/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -2211,7 +2211,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Dump/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2231,7 +2231,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/Dump/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2241,7 +2241,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/Dump/Entries/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2255,7 +2255,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Dump/"
"Actions/"
"LogService.CollectDiagnosticData/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -2268,7 +2268,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Dump/"
"Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -2284,7 +2284,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Crashdump/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -2318,7 +2318,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/Crashdump/Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2402,7 +2402,7 @@
*/
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -2476,7 +2476,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/Crashdump/Entries/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2493,7 +2493,7 @@
BMCWEB_ROUTE(
app,
"/redfish/v1/Systems/system/LogServices/Crashdump/Entries/<str>/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -2580,7 +2580,7 @@
// method for security reasons.
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/Crashdump/"
"Actions/LogService.CollectDiagnosticData/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
post)([](const crow::Request& req,
@@ -2690,7 +2690,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/EventLog/Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2730,7 +2730,7 @@
inline void requestRoutesPostCodesLogService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/LogServices/PostCodes/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2757,7 +2757,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/PostCodes/Actions/"
"LogService.ClearLog/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -3029,7 +3029,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/LogServices/PostCodes/Entries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -3061,7 +3061,7 @@
{
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/LogServices/PostCodes/Entries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index a92f490..e85abb1 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -109,7 +109,7 @@
*/
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/Actions/Manager.Reset/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -165,7 +165,7 @@
BMCWEB_ROUTE(app,
"/redfish/v1/Managers/bmc/Actions/Manager.ResetToDefaults/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -224,7 +224,7 @@
*/
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/ResetActionInfo/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1923,7 +1923,7 @@
std::string uuid = persistent_data::getConfig().systemUuid;
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)([uuid](const crow::Request&,
const std::shared_ptr<
bmcweb::AsyncResp>&
@@ -2179,7 +2179,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(
boost::beast::http::verb::
patch)([](const crow::Request& req,
@@ -2262,7 +2262,7 @@
inline void requestRoutesManagerCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
index 465beae..377d730 100644
--- a/redfish-core/lib/memory.hpp
+++ b/redfish-core/lib/memory.hpp
@@ -886,7 +886,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Memory/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -908,7 +908,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Memory/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/message_registries.hpp b/redfish-core/lib/message_registries.hpp
index 41713ce..ae1358e 100644
--- a/redfish-core/lib/message_registries.hpp
+++ b/redfish-core/lib/message_registries.hpp
@@ -32,7 +32,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Registries/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -57,7 +57,7 @@
inline void requestRoutesMessageRegistryFile(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Registries/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -123,7 +123,7 @@
inline void requestRoutesMessageRegistry(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Registries/<str>/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/metric_report.hpp b/redfish-core/lib/metric_report.hpp
index 24e53f9..66f4f93 100644
--- a/redfish-core/lib/metric_report.hpp
+++ b/redfish-core/lib/metric_report.hpp
@@ -63,7 +63,7 @@
inline void requestRoutesMetricReportCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/MetricReports/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -81,7 +81,7 @@
inline void requestRoutesMetricReport(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/MetricReports/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/metric_report_definition.hpp b/redfish-core/lib/metric_report_definition.hpp
index 6dce89f..76ff2b2 100644
--- a/redfish-core/lib/metric_report_definition.hpp
+++ b/redfish-core/lib/metric_report_definition.hpp
@@ -350,7 +350,7 @@
inline void requestRoutesMetricReportDefinitionCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/MetricReportDefinitions/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -367,7 +367,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/MetricReportDefinitions/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -413,7 +413,7 @@
{
BMCWEB_ROUTE(app,
"/redfish/v1/TelemetryService/MetricReportDefinitions/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -447,7 +447,7 @@
});
BMCWEB_ROUTE(app,
"/redfish/v1/TelemetryService/MetricReportDefinitions/<str>/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::delete_)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index 46b5405..e0b5dac 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -452,7 +452,7 @@
inline void requestRoutesNetworkProtocol(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/NetworkProtocol/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -522,7 +522,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/bmc/NetworkProtocol/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/pcie.hpp b/redfish-core/lib/pcie.hpp
index 15b2280..daff5c0 100644
--- a/redfish-core/lib/pcie.hpp
+++ b/redfish-core/lib/pcie.hpp
@@ -75,7 +75,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/PCIeDevices/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp)
@@ -96,7 +96,7 @@
inline void requestRoutesSystemPCIeDevice(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/PCIeDevices/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -170,7 +170,7 @@
*/
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/PCIeDevices/<str>/PCIeFunctions/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -251,7 +251,7 @@
BMCWEB_ROUTE(
app,
"/redfish/v1/Systems/system/PCIeDevices/<str>/PCIeFunctions/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
diff --git a/redfish-core/lib/power.hpp b/redfish-core/lib/power.hpp
index 349c1f5..c2a9945 100644
--- a/redfish-core/lib/power.hpp
+++ b/redfish-core/lib/power.hpp
@@ -128,7 +128,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Power/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -319,7 +319,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Power/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
index a0b6a1f..07a83eb 100644
--- a/redfish-core/lib/processor.hpp
+++ b/redfish-core/lib/processor.hpp
@@ -1028,7 +1028,7 @@
BMCWEB_ROUTE(
app, "/redfish/v1/Systems/system/Processors/<str>/OperatingConfigs/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1091,7 +1091,7 @@
BMCWEB_ROUTE(
app,
"/redfish/v1/Systems/system/Processors/<str>/OperatingConfigs/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request& req,
const std::shared_ptr<
@@ -1154,7 +1154,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Processors/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1179,7 +1179,7 @@
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Processors/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1193,7 +1193,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Processors/<str>/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/roles.hpp b/redfish-core/lib/roles.hpp
index b375ff0..90b8de3 100644
--- a/redfish-core/lib/roles.hpp
+++ b/redfish-core/lib/roles.hpp
@@ -73,7 +73,7 @@
inline void requestRoutesRoles(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/AccountService/Roles/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -102,7 +102,7 @@
inline void requestRoutesRoleCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/AccountService/Roles/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/sensors.hpp b/redfish-core/lib/sensors.hpp
index b476d32..0566e93 100644
--- a/redfish-core/lib/sensors.hpp
+++ b/redfish-core/lib/sensors.hpp
@@ -2978,7 +2978,7 @@
inline void requestRoutesSensorCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Sensors/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
@@ -3034,7 +3034,7 @@
inline void requestRoutesSensor(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Sensors/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
diff --git a/redfish-core/lib/storage.hpp b/redfish-core/lib/storage.hpp
index 0c3d9fd..0a1d4e6 100644
--- a/redfish-core/lib/storage.hpp
+++ b/redfish-core/lib/storage.hpp
@@ -25,7 +25,7 @@
inline void requestRoutesStorageCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Storage/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -43,7 +43,7 @@
inline void requestRoutesStorage(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Storage/1/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -266,7 +266,7 @@
inline void requestRoutesDrive(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/Storage/1/Drives/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 2656a20..38e4034 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -1861,7 +1861,7 @@
inline void requestRoutesSystemsCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Systems/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -1935,7 +1935,7 @@
*/
BMCWEB_ROUTE(app,
"/redfish/v1/Systems/system/Actions/ComputerSystem.Reset/")
- .privileges({"ConfigureComponent"})
+ .privileges({{"ConfigureComponent"}})
.methods(
boost::beast::http::verb::
post)([](const crow::Request& req,
@@ -2062,7 +2062,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -2158,7 +2158,7 @@
#endif
});
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/")
- .privileges({"ConfigureComponent"})
+ .privileges({{"ConfigureComponent"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -2261,7 +2261,7 @@
* Functions triggers appropriate requests on DBus
*/
BMCWEB_ROUTE(app, "/redfish/v1/Systems/system/ResetActionInfo/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/task.hpp b/redfish-core/lib/task.hpp
index 308a699..33f983a 100644
--- a/redfish-core/lib/task.hpp
+++ b/redfish-core/lib/task.hpp
@@ -316,7 +316,7 @@
inline void requestRoutesTaskMonitor(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TaskService/Tasks/<str>/Monitor/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -355,7 +355,7 @@
inline void requestRoutesTask(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TaskService/Tasks/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -423,7 +423,7 @@
inline void requestRoutesTaskCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TaskService/Tasks/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -453,7 +453,7 @@
inline void requestRoutesTaskService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TaskService/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
diff --git a/redfish-core/lib/telemetry_service.hpp b/redfish-core/lib/telemetry_service.hpp
index e6f5b0f..2ab69b9 100644
--- a/redfish-core/lib/telemetry_service.hpp
+++ b/redfish-core/lib/telemetry_service.hpp
@@ -12,7 +12,7 @@
inline void requestRoutesTelemetryService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/TelemetryService/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
diff --git a/redfish-core/lib/thermal.hpp b/redfish-core/lib/thermal.hpp
index ff1bc95..90f04e8 100644
--- a/redfish-core/lib/thermal.hpp
+++ b/redfish-core/lib/thermal.hpp
@@ -25,7 +25,7 @@
inline void requestRoutesThermal(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Thermal/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -47,7 +47,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Chassis/<str>/Thermal/")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
diff --git a/redfish-core/lib/update_service.hpp b/redfish-core/lib/update_service.hpp
index 02a4fad..33747dd 100644
--- a/redfish-core/lib/update_service.hpp
+++ b/redfish-core/lib/update_service.hpp
@@ -388,7 +388,7 @@
{
BMCWEB_ROUTE(
app, "/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(
boost::beast::http::verb::
post)([](const crow::Request& req,
@@ -507,7 +507,7 @@
inline void requestRoutesUpdateService(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::
get)([](const crow::Request&,
@@ -579,7 +579,7 @@
"xyz.openbmc_project.Software.ApplyTime", "RequestedApplyTime");
});
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::patch)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -661,7 +661,7 @@
}
});
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/")
- .privileges({"ConfigureComponents"})
+ .privileges({{"ConfigureComponents"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -687,7 +687,7 @@
inline void requestRoutesSoftwareInventoryCollection(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/FirmwareInventory/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request&,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
@@ -776,7 +776,7 @@
inline void requestRoutesSoftwareInventory(App& app)
{
BMCWEB_ROUTE(app, "/redfish/v1/UpdateService/FirmwareInventory/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(
boost::beast::http::verb::get)([](const crow::Request&,
const std::shared_ptr<
diff --git a/redfish-core/lib/virtual_media.hpp b/redfish-core/lib/virtual_media.hpp
index e0b6726..8fe31d5 100644
--- a/redfish-core/lib/virtual_media.hpp
+++ b/redfish-core/lib/virtual_media.hpp
@@ -775,7 +775,7 @@
{
BMCWEB_ROUTE(app, "/redfish/v1/Managers/<str>/VirtualMedia/<str>/Actions/"
"VirtualMedia.InsertMedia")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -920,7 +920,7 @@
BMCWEB_ROUTE(app, "/redfish/v1/Managers/<str>/VirtualMedia/<str>/Actions/"
"VirtualMedia.EjectMedia")
- .privileges({"ConfigureManager"})
+ .privileges({{"ConfigureManager"}})
.methods(boost::beast::http::verb::post)(
[](const crow::Request& req,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1010,7 +1010,7 @@
std::array<const char*, 0>());
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/<str>/VirtualMedia/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& /* req */,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,
@@ -1054,7 +1054,7 @@
});
BMCWEB_ROUTE(app, "/redfish/v1/Managers/<str>/VirtualMedia/<str>/")
- .privileges({"Login"})
+ .privileges({{"Login"}})
.methods(boost::beast::http::verb::get)(
[](const crow::Request& /* req */,
const std::shared_ptr<bmcweb::AsyncResp>& asyncResp,