From 6b64ce81b2584dd1d454ddda623001dd54c2205d Mon Sep 17 00:00:00 2001 From: Rory& Date: Fri, 6 Jun 2025 20:20:35 +0200 Subject: Synapse admin fixes, variou schanges --- .../Pages/Tools/Room/DropPowerlevel.razor | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 MatrixUtils.Web/Pages/Tools/Room/DropPowerlevel.razor (limited to 'MatrixUtils.Web/Pages/Tools/Room') diff --git a/MatrixUtils.Web/Pages/Tools/Room/DropPowerlevel.razor b/MatrixUtils.Web/Pages/Tools/Room/DropPowerlevel.razor new file mode 100644 index 0000000..3f9c141 --- /dev/null +++ b/MatrixUtils.Web/Pages/Tools/Room/DropPowerlevel.razor @@ -0,0 +1,51 @@ +@page "/Tools/Room/DropPowerlevel" +@using ArcaneLibs.Extensions +@using LibMatrix.EventTypes.Spec.State.RoomInfo +

DropPowerlevel

+
+ +User ID:
+Room ID:
+Execute + +
@Result
+ +@code { + private AuthenticatedHomeserverGeneric? Homeserver { get; set; } = null!; + + [Parameter, SupplyParameterFromQuery(Name = "RoomId")] + public string RoomId { get; set; } = ""; + + [Parameter, SupplyParameterFromQuery(Name = "UserId")] + public string UserId { get; set; } = ""; + + private string Result { get; set; } = ""; + + protected override async Task OnInitializedAsync() { + Homeserver = await sessionStore.GetCurrentHomeserver(); + Result = "I am: " + Homeserver.WhoAmI.ToJson() + "\n"; + StateHasChanged(); + } + + private async Task Execute() { + try { + if (Homeserver is not AuthenticatedHomeserverGeneric hs) { + Result = "Not authenticated"; + return; + } + + var room = hs.GetRoom(RoomId); + + var powerlevels = await room.GetPowerLevelsAsync(); + powerlevels.Users.Remove(UserId); + Result = (await room.SendStateEventAsync(RoomPowerLevelEventContent.EventId, powerlevels)).ToJson(); + } + catch (Exception e) { + Result = e.Message; + } + finally { + StateHasChanged(); + } + } + +} \ No newline at end of file -- cgit 1.5.1