diff --git a/installer/PSLauncher.iss b/installer/PSLauncher.iss index c7b934c..f1a43c6 100644 --- a/installer/PSLauncher.iss +++ b/installer/PSLauncher.iss @@ -11,7 +11,7 @@ #define MyAppName "PROSERVE Launcher" #define MyAppShortName "PS_Launcher" -#define MyAppVersion "0.27.1" +#define MyAppVersion "0.27.2" #define MyAppPublisher "ASTERION VR" #define MyAppURL "https://asterionvr.com" #define MyAppExeName "PS_Launcher.exe" diff --git a/src/PSLauncher.App/PSLauncher.App.csproj b/src/PSLauncher.App/PSLauncher.App.csproj index 59017db..de7da73 100644 --- a/src/PSLauncher.App/PSLauncher.App.csproj +++ b/src/PSLauncher.App/PSLauncher.App.csproj @@ -18,9 +18,9 @@ PROSERVE Launcher © 2026 ASTERION VR — All rights reserved PSLauncher.App - 0.27.1 - 0.27.1.0 - 0.27.1.0 + 0.27.2 + 0.27.2.0 + 0.27.2.0 true diff --git a/src/PSLauncher.Core/Licensing/LicenseService.cs b/src/PSLauncher.Core/Licensing/LicenseService.cs index 2640294..eb9067b 100644 --- a/src/PSLauncher.Core/Licensing/LicenseService.cs +++ b/src/PSLauncher.Core/Licensing/LicenseService.cs @@ -212,6 +212,13 @@ public sealed class LicenseService : ILicenseService OwnerName = _config.License.CachedOwnerName, DownloadEntitlementUntil = _config.License.CachedEntitlementUntil, ServerTime = lastValidation, + // Restauration des champs channel + canSeeBetas (ajoutés persistants + // depuis v0.27.2). Sans ça, le channelProvider du ManifestService + // retombait sur null à chaque relance, le client fetch sans + // ?channel=, et l'utilisateur ne voyait que les versions default — + // jamais les builds spécifiques à son channel (firefighter, police…). + Channel = _config.License.CachedChannel, + CanSeeBetas = _config.License.CachedCanSeeBetas, }; } @@ -227,6 +234,8 @@ public sealed class LicenseService : ILicenseService _config.License.CachedOwnerName = response.OwnerName; _config.License.CachedEntitlementUntil = response.DownloadEntitlementUntil; _config.License.CachedStatus = response.Status; + _config.License.CachedChannel = response.Channel; + _config.License.CachedCanSeeBetas = response.CanSeeBetas; _configStore.Save(_config); } diff --git a/src/PSLauncher.Models/LocalConfig.cs b/src/PSLauncher.Models/LocalConfig.cs index 838c3b5..f65f11a 100644 --- a/src/PSLauncher.Models/LocalConfig.cs +++ b/src/PSLauncher.Models/LocalConfig.cs @@ -322,6 +322,22 @@ public sealed class LicenseConfig public DateTime? CachedEntitlementUntil { get; set; } public string? CachedOwnerName { get; set; } + /// + /// Channel de distribution attribué à cette license côté serveur (NULL = + /// aucun ⇒ accès uniquement aux versions taggées 'default'). Persisté ici + /// pour que restaure ce champ entre + /// deux lancements du launcher — sans ça, le channelProvider du + /// ManifestService retombait sur null à chaque relance et le client + /// fetchait toujours le manifest default. + /// + public string? CachedChannel { get; set; } + + /// + /// Flag canSeeBetas de la license. Persisté pour la même raison + /// que : restauration entre deux lancements. + /// + public bool CachedCanSeeBetas { get; set; } + /// /// Statut tel que renvoyé par le serveur lors de la dernière validation : "valid", /// "expired", "revoked", "invalid", "machine_limit_exceeded". Persisté pour qu'une