mirror of
https://github.com/matrix-construct/construct
synced 2024-06-08 04:58:58 +02:00
ircd:Ⓜ️:user::keys: Further abstract callstack through type string argument.
This commit is contained in:
parent
bbed809975
commit
0b888b662a
|
@ -26,12 +26,14 @@ struct ircd::m::user::keys
|
||||||
bool append_keys(json::stack::object &, const event::idx &, const user::id &) const;
|
bool append_keys(json::stack::object &, const event::idx &, const user::id &) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool has_device(const m::id::device &) const;
|
bool has_device(const string_view &) const;
|
||||||
|
bool has_cross(const string_view &type) const;
|
||||||
bool has_cross_master() const;
|
bool has_cross_master() const;
|
||||||
bool has_cross_self() const;
|
bool has_cross_self() const;
|
||||||
bool has_cross_user() const;
|
bool has_cross_user() const;
|
||||||
|
|
||||||
void device(json::stack::object &, const string_view &device_id) const;
|
void device(json::stack::object &, const string_view &device_id) const;
|
||||||
|
void cross(json::stack::object &, const string_view &type) const;
|
||||||
void cross_master(json::stack::object &) const;
|
void cross_master(json::stack::object &) const;
|
||||||
void cross_self(json::stack::object &) const;
|
void cross_self(json::stack::object &) const;
|
||||||
void cross_user(json::stack::object &) const;
|
void cross_user(json::stack::object &) const;
|
||||||
|
@ -53,33 +55,31 @@ inline void
|
||||||
ircd::m::user::keys::cross_user(json::stack::object &out)
|
ircd::m::user::keys::cross_user(json::stack::object &out)
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
const auto event_idx
|
return cross(out, "ircd.cross_signing.user");
|
||||||
{
|
|
||||||
user_room.get(std::nothrow, "ircd.cross_signing.user", "")
|
|
||||||
};
|
|
||||||
|
|
||||||
append_keys(out, event_idx, user_room.user.user_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
ircd::m::user::keys::cross_self(json::stack::object &out)
|
ircd::m::user::keys::cross_self(json::stack::object &out)
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
const auto event_idx
|
return cross(out, "ircd.cross_signing.self");
|
||||||
{
|
|
||||||
user_room.get(std::nothrow, "ircd.cross_signing.self", "")
|
|
||||||
};
|
|
||||||
|
|
||||||
append_keys(out, event_idx, user_room.user.user_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void
|
inline void
|
||||||
ircd::m::user::keys::cross_master(json::stack::object &out)
|
ircd::m::user::keys::cross_master(json::stack::object &out)
|
||||||
const
|
const
|
||||||
|
{
|
||||||
|
return cross(out, "ircd.cross_signing.master");
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void
|
||||||
|
ircd::m::user::keys::cross(json::stack::object &out,
|
||||||
|
const string_view &type)
|
||||||
|
const
|
||||||
{
|
{
|
||||||
const auto event_idx
|
const auto event_idx
|
||||||
{
|
{
|
||||||
user_room.get(std::nothrow, "ircd.cross_signing.master", "")
|
user_room.get(std::nothrow, type, "")
|
||||||
};
|
};
|
||||||
|
|
||||||
append_keys(out, event_idx, user_room.user.user_id);
|
append_keys(out, event_idx, user_room.user.user_id);
|
||||||
|
@ -89,27 +89,38 @@ inline bool
|
||||||
ircd::m::user::keys::has_cross_user()
|
ircd::m::user::keys::has_cross_user()
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
return user_room.has("ircd.cross_signing.user", "");
|
return has_cross("ircd.cross_signing.user");
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
ircd::m::user::keys::has_cross_self()
|
ircd::m::user::keys::has_cross_self()
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
return user_room.has("ircd.cross_signing.self", "");
|
return has_cross("ircd.cross_signing.self");
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
ircd::m::user::keys::has_cross_master()
|
ircd::m::user::keys::has_cross_master()
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
return user_room.has("ircd.cross_signing.master", "");
|
return has_cross("ircd.cross_signing.master");
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool
|
inline bool
|
||||||
ircd::m::user::keys::has_device(const m::id::device &device_id)
|
ircd::m::user::keys::has_cross(const string_view &type)
|
||||||
const
|
const
|
||||||
{
|
{
|
||||||
const m::user::devices devices{user_room.user};
|
return user_room.has(type, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool
|
||||||
|
ircd::m::user::keys::has_device(const string_view &device_id)
|
||||||
|
const
|
||||||
|
{
|
||||||
|
const m::user::devices devices
|
||||||
|
{
|
||||||
|
user_room.user
|
||||||
|
};
|
||||||
|
|
||||||
return devices.has(device_id, "keys");
|
return devices.has(device_id, "keys");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue