Allow everyone to see build action details
This commit is contained in:
parent
30e3d0343e
commit
ac0d64fe3e
|
@ -26,6 +26,8 @@ template <> inline void convertValue(const std::multimap<std::string, std::strin
|
|||
if (part.empty()) {
|
||||
} else if (part == "read_build_actions_details") {
|
||||
result = result | UserPermissions::ReadBuildActionsDetails;
|
||||
} else if (part == "download_artefacts") {
|
||||
result = result | UserPermissions::DownloadArtefacts;
|
||||
} else if (part == "modify_build_actions") {
|
||||
result = result | UserPermissions::ModifyBuildActions;
|
||||
} else if (part == "perform_admin_actions") {
|
||||
|
|
|
@ -7,17 +7,19 @@
|
|||
namespace LibRepoMgr {
|
||||
|
||||
enum class UserPermissions : std::uint64_t {
|
||||
None = 0x0,
|
||||
ReadBuildActionsDetails = 0x1,
|
||||
ModifyBuildActions = ReadBuildActionsDetails | 0x2,
|
||||
PerformAdminActions = 0x4,
|
||||
TryAgain = 0x8,
|
||||
None = 0,
|
||||
ReadBuildActionsDetails = (1 << 0),
|
||||
DownloadArtefacts = (1 << 1),
|
||||
ModifyBuildActions = ReadBuildActionsDetails | DownloadArtefacts | (1 << 2),
|
||||
PerformAdminActions = (1 << 3),
|
||||
TryAgain = (1 << 4),
|
||||
DefaultPermissions = ReadBuildActionsDetails,
|
||||
};
|
||||
|
||||
constexpr UserPermissions operator|(UserPermissions lhs, UserPermissions rhs)
|
||||
{
|
||||
return static_cast<UserPermissions>(static_cast<int>(lhs) | static_cast<int>(rhs));
|
||||
return static_cast<UserPermissions>(
|
||||
static_cast<std::underlying_type_t<UserPermissions>>(lhs) | static_cast<std::underlying_type_t<UserPermissions>>(rhs));
|
||||
}
|
||||
|
||||
struct UserInfo {
|
||||
|
|
|
@ -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} },
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue