0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-04 21:08:57 +01:00

ircd:Ⓜ️:users: Add lower_bounding for_each; prefix search to users console cmd.

This commit is contained in:
Jason Volk 2018-10-23 14:17:42 -07:00
parent ba70c1b128
commit 16ac997220
3 changed files with 25 additions and 3 deletions

View file

@ -13,6 +13,7 @@
namespace ircd::m::users namespace ircd::m::users
{ {
bool for_each(const string_view &id_lower_bound, const user::closure_bool &);
bool for_each(const user::closure_bool &); bool for_each(const user::closure_bool &);
void for_each(const user::closure &); void for_each(const user::closure &);
} }

View file

@ -1567,13 +1567,20 @@ ircd::m::users::for_each(const user::closure &closure)
bool bool
ircd::m::users::for_each(const user::closure_bool &closure) ircd::m::users::for_each(const user::closure_bool &closure)
{
return for_each(string_view{}, closure);
}
bool
ircd::m::users::for_each(const string_view &lower_bound,
const user::closure_bool &closure)
{ {
const m::room::state state const m::room::state state
{ {
user::users user::users
}; };
return state.for_each("ircd.user", m::room::state::keys_bool{[&closure] return state.for_each("ircd.user", lower_bound, m::room::state::keys_bool{[&closure]
(const string_view &user_id) (const string_view &user_id)
{ {
const m::user &user const m::user &user

View file

@ -7239,11 +7239,25 @@ console_cmd__user__events__count(opt &out, const string_view &line)
bool bool
console_cmd__users(opt &out, const string_view &line) console_cmd__users(opt &out, const string_view &line)
{ {
m::users::for_each([&out] const params param{line, " ",
{
"prefix"
}};
const auto prefix
{
param.at("prefix", string_view{})
};
m::users::for_each(prefix, m::user::closure_bool{[&out, &prefix]
(const m::user &user) (const m::user &user)
{ {
if(prefix && !startswith(user.user_id, prefix))
return false;
out << user.user_id << std::endl; out << user.user_id << std::endl;
}); return true;
}});
return true; return true;
} }