From fbd5b3f57169865123ae20f858c33fc69021fd7d Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 14 Feb 2023 18:25:53 -0800 Subject: [PATCH] ircd::m::user: Add oper()/deoper() grant and revoke to interface. --- include/ircd/m/user/user.h | 3 +++ matrix/user.cc | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/include/ircd/m/user/user.h b/include/ircd/m/user/user.h index 01a31b1ad..7b6bcb62c 100644 --- a/include/ircd/m/user/user.h +++ b/include/ircd/m/user/user.h @@ -70,6 +70,9 @@ struct ircd::m::user event::id::buf deactivate(); event::id::buf activate(); + event::id::buf deoper(); + event::id::buf oper(); + user(const id &user_id) :user_id{user_id} {} diff --git a/matrix/user.cc b/matrix/user.cc index e9bb79cde..0e1020517 100644 --- a/matrix/user.cc +++ b/matrix/user.cc @@ -230,6 +230,38 @@ const }; } +ircd::m::event::id::buf +ircd::m::user::oper() +{ + const m::room::id::buf control_room_id + { + "!control", origin(my()) + }; + + const m::room control_room + { + control_room_id + }; + + return m::join(control_room, user_id); +} + +ircd::m::event::id::buf +ircd::m::user::deoper() +{ + const m::room::id::buf control_room_id + { + "!control", origin(my()) + }; + + const m::room control_room + { + control_room_id + }; + + return m::leave(control_room, user_id); +} + ircd::m::event::id::buf ircd::m::user::activate() {