xrpld
Loading...
Searching...
No Matches
Role.h
1#pragma once
2
3#include <xrpl/beast/net/IPAddress.h>
4#include <xrpl/beast/net/IPEndpoint.h>
5#include <xrpl/json/json_value.h>
6#include <xrpl/resource/Consumer.h>
7#include <xrpl/resource/ResourceManager.h>
8#include <xrpl/server/Handoff.h>
9#include <xrpl/server/Port.h>
10
11#include <boost/asio/ip/network_v4.hpp>
12#include <boost/asio/ip/network_v6.hpp>
13#include <boost/utility/string_view.hpp>
14
15#include <string_view>
16#include <vector>
17
18namespace xrpl {
19
28
38Role
40 Role const& required,
41 Port const& port,
42 json::Value const& params,
43 beast::ip::Endpoint const& remoteIp,
44 std::string_view user);
45
46resource::Consumer
48 resource::Manager& manager,
49 beast::ip::Endpoint const& remoteAddress,
50 Role const& role,
53
57bool
58isUnlimited(Role const& role);
59
67bool
69 beast::ip::Address const& remoteIp,
72
74forwardedFor(http_request_type const& request);
75
76} // namespace xrpl
A version-independent IP address and port combination.
Definition IPEndpoint.h:24
Represents a JSON value.
Definition json_value.h:117
boost::asio::ip::address Address
Definition IPAddress.h:20
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5
std::string_view forwardedFor(http_request_type const &request)
Definition Role.cpp:251
Role
Indicates the level of administrative permission to grant.
Definition Role.h:27
@ IDENTIFIED
Definition Role.h:27
@ USER
Definition Role.h:27
@ GUEST
Definition Role.h:27
@ ADMIN
Definition Role.h:27
@ FORBID
Definition Role.h:27
@ PROXY
Definition Role.h:27
Role requestRole(Role const &required, Port const &port, json::Value const &params, beast::ip::Endpoint const &remoteIp, std::string_view user)
Return the allowed privilege role.
Definition Role.cpp:88
boost::beast::http::request< boost::beast::http::dynamic_body > http_request_type
Definition Handoff.h:12
bool isUnlimited(Role const &role)
ADMIN and IDENTIFIED roles shall have unlimited resources.
Definition Role.cpp:115
bool ipAllowed(beast::ip::Address const &remoteIp, std::vector< boost::asio::ip::network_v4 > const &nets4, std::vector< boost::asio::ip::network_v6 > const &nets6)
True if remoteIp is in any of adminIp.
Definition Role.cpp:42
resource::Consumer requestInboundEndpoint(resource::Manager &manager, beast::ip::Endpoint const &remoteAddress, Role const &role, std::string_view user, std::string_view forwardedFor)
Definition Role.cpp:132