From ac0d64fe3e71db264853548708b44b2e18c03110 Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 10 Mar 2022 23:19:02 +0100 Subject: [PATCH] Allow everyone to see build action details --- librepomgr/authentication.cpp | 2 ++ librepomgr/authentication.h | 14 ++++++++------ librepomgr/webapi/server.cpp | 2 +- librepomgr/webapi/session.cpp | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/librepomgr/authentication.cpp b/librepomgr/authentication.cpp index 633e8f1..b409b29 100644 --- a/librepomgr/authentication.cpp +++ b/librepomgr/authentication.cpp @@ -26,6 +26,8 @@ template <> inline void convertValue(const std::multimap(static_cast(lhs) | static_cast(rhs)); + return static_cast( + static_cast>(lhs) | static_cast>(rhs)); } struct UserInfo { diff --git a/librepomgr/webapi/server.cpp b/librepomgr/webapi/server.cpp index 5a6ea82..782fd23 100644 --- a/librepomgr/webapi/server.cpp +++ b/librepomgr/webapi/server.cpp @@ -34,7 +34,7 @@ const Router Server::s_router = { { { http::verb::delete_, "/api/v0/build-action" }, Route{&Routes::deleteBuildActions, UserPermissions::ModifyBuildActions} }, { { http::verb::get, "/api/v0/build-action/details" }, Route{&Routes::getBuildActionDetails, UserPermissions::ReadBuildActionsDetails} }, { { http::verb::get, "/api/v0/build-action/logfile" }, Route{&Routes::getBuildActionLogFile, UserPermissions::ReadBuildActionsDetails} }, - { { http::verb::get, "/api/v0/build-action/artefact" }, Route{&Routes::getBuildActionArtefact, UserPermissions::ReadBuildActionsDetails} }, + { { http::verb::get, "/api/v0/build-action/artefact" }, Route{&Routes::getBuildActionArtefact, UserPermissions::DownloadArtefacts} }, { { http::verb::post, "/api/v0/build-action" }, Route{&Routes::postBuildAction, UserPermissions::ModifyBuildActions} }, { { http::verb::post, "/api/v0/build-action/clone" }, Route{&Routes::postCloneBuildActions, UserPermissions::ModifyBuildActions} }, { { http::verb::post, "/api/v0/build-action/start" }, Route{&Routes::postStartBuildActions, UserPermissions::ModifyBuildActions} }, diff --git a/librepomgr/webapi/session.cpp b/librepomgr/webapi/session.cpp index f7ab724..fba0dac 100644 --- a/librepomgr/webapi/session.cpp +++ b/librepomgr/webapi/session.cpp @@ -68,7 +68,7 @@ void Session::received(boost::system::error_code ec, size_t bytesTransferred) if (const auto routing(router.find(RouteId{ method, std::string(path) })); routing != router.cend()) { const Route &route = routing->second; const auto requiredPermissions = route.permissions; - if (requiredPermissions != UserPermissions::None) { + if (requiredPermissions != UserPermissions::None && requiredPermissions != UserPermissions::DefaultPermissions) { const auto authInfo = request.find(boost::beast::http::field::authorization); if (authInfo == request.end()) { respond(Render::makeAuthRequired(request));