1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-15 15:30:49 -05:00

Add the improved code change for trial metadata

This commit is contained in:
Cy Okeke 2025-06-10 16:34:29 +01:00
parent 6515a59af0
commit 57878f2be8
No known key found for this signature in database
GPG Key ID: 88B341B55C84B45C
3 changed files with 27 additions and 19 deletions

View File

@ -87,26 +87,29 @@ public class OrganizationSale
private static SubscriptionSetup GetSubscriptionSetup(OrganizationUpgrade upgrade) private static SubscriptionSetup GetSubscriptionSetup(OrganizationUpgrade upgrade)
{ {
var passwordManagerOptions = new SubscriptionSetup.PasswordManager var subscriptionSetup = new SubscriptionSetup
{
Seats = upgrade.AdditionalSeats,
Storage = upgrade.AdditionalStorageGb,
PremiumAccess = upgrade.PremiumAccessAddon
};
var secretsManagerOptions = upgrade.UseSecretsManager
? new SubscriptionSetup.SecretsManager
{
Seats = upgrade.AdditionalSmSeats ?? 0,
ServiceAccounts = upgrade.AdditionalServiceAccounts
}
: null;
return new SubscriptionSetup
{ {
PlanType = upgrade.Plan, PlanType = upgrade.Plan,
PasswordManagerOptions = passwordManagerOptions, PasswordManagerOptions = new SubscriptionSetup.PasswordManager
SecretsManagerOptions = secretsManagerOptions {
Seats = upgrade.AdditionalSeats,
Storage = upgrade.AdditionalStorageGb,
PremiumAccess = upgrade.PremiumAccessAddon
},
SecretsManagerOptions = upgrade.UseSecretsManager
? new SubscriptionSetup.SecretsManager
{
Seats = upgrade.AdditionalSmSeats ?? 0,
ServiceAccounts = upgrade.AdditionalServiceAccounts
}
: null
}; };
if (upgrade is OrganizationSignup signup)
{
subscriptionSetup.InitiationPath = signup.InitiationPath;
}
return subscriptionSetup;
} }
} }

View File

@ -10,6 +10,7 @@ public class SubscriptionSetup
public required PasswordManager PasswordManagerOptions { get; set; } public required PasswordManager PasswordManagerOptions { get; set; }
public SecretsManager? SecretsManagerOptions { get; set; } public SecretsManager? SecretsManagerOptions { get; set; }
public bool SkipTrial = false; public bool SkipTrial = false;
public string? InitiationPath { get; set; }
public class PasswordManager public class PasswordManager
{ {

View File

@ -421,7 +421,11 @@ public class OrganizationBillingService(
Items = subscriptionItemOptionsList, Items = subscriptionItemOptionsList,
Metadata = new Dictionary<string, string> Metadata = new Dictionary<string, string>
{ {
["organizationId"] = organizationId.ToString() ["organizationId"] = organizationId.ToString(),
["trialInitiationPath"] = !string.IsNullOrEmpty(subscriptionSetup.InitiationPath) &&
subscriptionSetup.InitiationPath.Contains("trial from marketing website")
? "marketing-initiated"
: "product-initiated"
}, },
OffSession = true, OffSession = true,
TrialPeriodDays = subscriptionSetup.SkipTrial ? 0 : plan.TrialPeriodDays TrialPeriodDays = subscriptionSetup.SkipTrial ? 0 : plan.TrialPeriodDays