From 158058b720758dc4a999260893a9006534b8bb51 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 5 Mar 2024 00:00:21 +0100 Subject: [PATCH] Add guest permissions to server info --- .../Models/DTO/ServerInfo.cs | 5 ++++ back/src/Kyoo.Authentication/Views/InfoApi.cs | 1 + .../models/src/resources/server-info.ts | 26 ++++++++++--------- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/back/src/Kyoo.Authentication/Models/DTO/ServerInfo.cs b/back/src/Kyoo.Authentication/Models/DTO/ServerInfo.cs index 50ff3a71..bfb3dbd2 100644 --- a/back/src/Kyoo.Authentication/Models/DTO/ServerInfo.cs +++ b/back/src/Kyoo.Authentication/Models/DTO/ServerInfo.cs @@ -31,6 +31,11 @@ public class ServerInfo /// True if guest accounts are allowed on this instance. /// public bool AllowGuests { get; set; } + + /// + /// The list of permissions available for the guest account. + /// + public List GuestPermissions { get; set; } } public class OidcInfo diff --git a/back/src/Kyoo.Authentication/Views/InfoApi.cs b/back/src/Kyoo.Authentication/Views/InfoApi.cs index fd951935..93065198 100644 --- a/back/src/Kyoo.Authentication/Views/InfoApi.cs +++ b/back/src/Kyoo.Authentication/Views/InfoApi.cs @@ -39,6 +39,7 @@ public class InfoApi(PermissionOption options) : ControllerBase new ServerInfo() { AllowGuests = options.Default.Any(), + GuestPermissions = options.Default.ToList(), Oidc = options .OIDC.Select(x => new KeyValuePair( x.Key, diff --git a/front/packages/models/src/resources/server-info.ts b/front/packages/models/src/resources/server-info.ts index 25faf913..00b84c0f 100644 --- a/front/packages/models/src/resources/server-info.ts +++ b/front/packages/models/src/resources/server-info.ts @@ -37,22 +37,24 @@ export const ServerInfoP = z.object({ * True if guest accounts are allowed on this instance. */ allowGuests: z.boolean(), + /* + * The list of permissions available for the guest account. + */ + guestPermissions: z.array(z.string()), /* * The list of oidc providers configured for this instance of kyoo. */ - oidc: z - .record(z.string(), OidcInfoP) - .transform((x) => - Object.fromEntries( - Object.entries(x).map(([provider, info]) => [ - provider, - { - ...info, - link: imageFn(`/auth/login/${provider}?redirectUrl=${baseAppUrl()}/login/callback`), - }, - ]), - ), + oidc: z.record(z.string(), OidcInfoP).transform((x) => + Object.fromEntries( + Object.entries(x).map(([provider, info]) => [ + provider, + { + ...info, + link: imageFn(`/auth/login/${provider}?redirectUrl=${baseAppUrl()}/login/callback`), + }, + ]), ), + ), }); /**