Drop unauthenticated guests from channels: the allow_guests setting, the /guests endpoints and the guest seat table are gone, and requests without an account session get 401 account_required. Share links are unaffected. Contract version is now 8.0.0.
33 lines
1.8 KiB
C#
33 lines
1.8 KiB
C#
using System.Text.Json.Serialization;
|
|
using WebDrop.Core;
|
|
|
|
namespace WebDrop.Api;
|
|
|
|
public sealed class ChannelHistoryRequest
|
|
{
|
|
[JsonPropertyName("chatHistory")] public bool ChatHistory { get; init; }
|
|
[JsonPropertyName("filesHistory")] public bool FilesHistory { get; init; }
|
|
}
|
|
public static partial class Endpoints
|
|
{
|
|
private static void MapWorkspaceCrypto(RouteGroupBuilder api)
|
|
{
|
|
api.MapGet("/spaces/{id}/crypto", (string id, HttpContext ctx, ChannelService svc) => Json(svc.ReadCrypto(ParseId(id), RequestAuth.FromHeaders(ctx.Request, false)), ApiJson.Default.CryptoState));
|
|
api.MapPut("/spaces/{id}/crypto/domains", async (string id, HttpContext ctx, ChannelService svc, CancellationToken ct) =>
|
|
{
|
|
var req = await ReadJson(ctx.Request, ApiJson.Default.DomainPublishRequest, ct);
|
|
svc.PublishDomain(ParseId(id), RequestAuth.FromHeaders(ctx.Request, false), req); return Results.NoContent();
|
|
});
|
|
api.MapPost("/spaces/{id}/crypto/objects", async (string id, HttpContext ctx, ChannelService svc, CancellationToken ct) =>
|
|
{
|
|
var req = await ReadJson(ctx.Request, ApiJson.Default.ObjectEnvelope, ct);
|
|
return Json(svc.DeclareObject(ParseId(id), RequestAuth.FromHeaders(ctx.Request, false), req), ApiJson.Default.ObjectEnvelope, 201);
|
|
});
|
|
api.MapPatch("/spaces/{id}/channels/{channelId}/history", async (string id, string channelId, HttpContext ctx, ChannelService svc, CancellationToken ct) =>
|
|
{
|
|
var req = await ReadJson(ctx.Request, ApiJson.Default.ChannelHistoryRequest, ct);
|
|
svc.SetChannelHistory(ParseId(id), RequestAuth.FromHeaders(ctx.Request, false), channelId, req.ChatHistory, req.FilesHistory); return Results.NoContent();
|
|
});
|
|
}
|
|
}
|