mirror of
https://github.com/vtnerd/monero-lws.git
synced 2024-12-22 19:39:23 +00:00
Add option to auto-accept new account creation (#86)
This commit is contained in:
parent
0ed9ff4e2e
commit
1bbe12f3d6
3 changed files with 16 additions and 2 deletions
|
@ -40,6 +40,7 @@
|
||||||
#include "cryptonote_config.h" // monero/src
|
#include "cryptonote_config.h" // monero/src
|
||||||
#include "db/data.h"
|
#include "db/data.h"
|
||||||
#include "db/storage.h"
|
#include "db/storage.h"
|
||||||
|
#include "db/string.h"
|
||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "lmdb/util.h" // monero/src
|
#include "lmdb/util.h" // monero/src
|
||||||
#include "net/http_base.h" // monero/contrib/epee/include
|
#include "net/http_base.h" // monero/contrib/epee/include
|
||||||
|
@ -144,6 +145,7 @@ namespace lws
|
||||||
std::uint32_t max_subaddresses;
|
std::uint32_t max_subaddresses;
|
||||||
epee::net_utils::ssl_verification_t webhook_verify;
|
epee::net_utils::ssl_verification_t webhook_verify;
|
||||||
bool disable_admin_auth;
|
bool disable_admin_auth;
|
||||||
|
bool auto_accept_creation;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct get_address_info
|
struct get_address_info
|
||||||
|
@ -648,6 +650,13 @@ namespace lws
|
||||||
if (!hooks)
|
if (!hooks)
|
||||||
return hooks.error();
|
return hooks.error();
|
||||||
|
|
||||||
|
if (options.auto_accept_creation)
|
||||||
|
{
|
||||||
|
const auto accepted = disk.accept_requests(db::request::create, {std::addressof(req.creds.address), 1});
|
||||||
|
if (!accepted)
|
||||||
|
MERROR("Failed to move account " << db::address_string(req.creds.address) << " to available state: " << accepted.error());
|
||||||
|
}
|
||||||
|
|
||||||
if (!hooks->empty())
|
if (!hooks->empty())
|
||||||
{
|
{
|
||||||
expect<rpc::client> client = gclient.clone();
|
expect<rpc::client> client = gclient.clone();
|
||||||
|
@ -1146,7 +1155,7 @@ namespace lws
|
||||||
};
|
};
|
||||||
|
|
||||||
bool any_ssl = false;
|
bool any_ssl = false;
|
||||||
const runtime_options options{config.max_subaddresses, config.webhook_verify, config.disable_admin_auth};
|
const runtime_options options{config.max_subaddresses, config.webhook_verify, config.disable_admin_auth, config.auto_accept_creation};
|
||||||
for (const std::string& address : addresses)
|
for (const std::string& address : addresses)
|
||||||
{
|
{
|
||||||
ports_.emplace_back(io_service_, disk.clone(), MONERO_UNWRAP(client.clone()), options);
|
ports_.emplace_back(io_service_, disk.clone(), MONERO_UNWRAP(client.clone()), options);
|
||||||
|
|
|
@ -57,6 +57,7 @@ namespace lws
|
||||||
epee::net_utils::ssl_verification_t webhook_verify;
|
epee::net_utils::ssl_verification_t webhook_verify;
|
||||||
bool allow_external;
|
bool allow_external;
|
||||||
bool disable_admin_auth;
|
bool disable_admin_auth;
|
||||||
|
bool auto_accept_creation;
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit rest_server(epee::span<const std::string> addresses, std::vector<std::string> admin, db::storage disk, rpc::client client, configuration config);
|
explicit rest_server(epee::span<const std::string> addresses, std::vector<std::string> admin, db::storage disk, rpc::client client, configuration config);
|
||||||
|
|
|
@ -79,6 +79,7 @@ namespace
|
||||||
const command_line::arg_descriptor<std::string> webhook_ssl_verification;
|
const command_line::arg_descriptor<std::string> webhook_ssl_verification;
|
||||||
const command_line::arg_descriptor<std::string> config_file;
|
const command_line::arg_descriptor<std::string> config_file;
|
||||||
const command_line::arg_descriptor<std::uint32_t> max_subaddresses;
|
const command_line::arg_descriptor<std::uint32_t> max_subaddresses;
|
||||||
|
const command_line::arg_descriptor<bool> auto_accept_creation;
|
||||||
|
|
||||||
static std::string get_default_zmq()
|
static std::string get_default_zmq()
|
||||||
{
|
{
|
||||||
|
@ -122,6 +123,7 @@ namespace
|
||||||
, webhook_ssl_verification{"webhook-ssl-verification", "[<none|system_ca>] specify SSL verification mode for webhooks", "system_ca"}
|
, webhook_ssl_verification{"webhook-ssl-verification", "[<none|system_ca>] specify SSL verification mode for webhooks", "system_ca"}
|
||||||
, config_file{"config-file", "Specify any option in a config file; <name>=<value> on separate lines"}
|
, config_file{"config-file", "Specify any option in a config file; <name>=<value> on separate lines"}
|
||||||
, max_subaddresses{"max-subaddresses", "Maximum number of subaddresses per primary account (defaults to 0)", 0}
|
, max_subaddresses{"max-subaddresses", "Maximum number of subaddresses per primary account (defaults to 0)", 0}
|
||||||
|
, auto_accept_creation{"auto-accept-creation", "New account creation requests are automatically accepted", false}
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void prepare(boost::program_options::options_description& description) const
|
void prepare(boost::program_options::options_description& description) const
|
||||||
|
@ -153,6 +155,7 @@ namespace
|
||||||
command_line::add_arg(description, webhook_ssl_verification);
|
command_line::add_arg(description, webhook_ssl_verification);
|
||||||
command_line::add_arg(description, config_file);
|
command_line::add_arg(description, config_file);
|
||||||
command_line::add_arg(description, max_subaddresses);
|
command_line::add_arg(description, max_subaddresses);
|
||||||
|
command_line::add_arg(description, auto_accept_creation);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -236,7 +239,8 @@ namespace
|
||||||
command_line::get_arg(args, opts.max_subaddresses),
|
command_line::get_arg(args, opts.max_subaddresses),
|
||||||
webhook_verify,
|
webhook_verify,
|
||||||
command_line::get_arg(args, opts.external_bind),
|
command_line::get_arg(args, opts.external_bind),
|
||||||
command_line::get_arg(args, opts.disable_admin_auth)
|
command_line::get_arg(args, opts.disable_admin_auth),
|
||||||
|
command_line::get_arg(args, opts.auto_accept_creation)
|
||||||
},
|
},
|
||||||
command_line::get_arg(args, opts.daemon_rpc),
|
command_line::get_arg(args, opts.daemon_rpc),
|
||||||
command_line::get_arg(args, opts.daemon_sub),
|
command_line::get_arg(args, opts.daemon_sub),
|
||||||
|
|
Loading…
Reference in a new issue