diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemable.html.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseOffer.html.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemable.html.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseOffer.html.hbs diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemable.text.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseOffer.text.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemable.text.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseOffer.text.hbs diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUser.html.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUser.html.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUser.html.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUser.html.hbs diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUser.text.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUser.text.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUser.text.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUser.text.hbs diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUser.html.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUser.html.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUser.html.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUser.html.hbs diff --git a/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUser.text.hbs b/src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUser.text.hbs similarity index 100% rename from src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUser.text.hbs rename to src/Core/MailTemplates/Handlebars/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUser.text.hbs diff --git a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemableViewModel.cs b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemableViewModel.cs deleted file mode 100644 index 57e01e7108..0000000000 --- a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemableViewModel.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Bit.Core.Models.Mail.FamiliesForEnterprise -{ - public class FamiliesForEnterpriseInviteRedeemableViewModel : BaseMailModel - { - public string OrganizationName { get; set; } - public string Url { get; set; } - } -} diff --git a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseOfferViewModel.cs b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseOfferViewModel.cs new file mode 100644 index 0000000000..4c8e41c2a4 --- /dev/null +++ b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseOfferViewModel.cs @@ -0,0 +1,8 @@ +namespace Bit.Core.Models.Mail.FamiliesForEnterprise +{ + public class FamiliesForEnterpriseOfferViewModel : BaseMailModel + { + public string SponsorshipToken { get; set; } + public string Url => $"{WebVaultUrl}/sponsored/families-for-enterprise?token={SponsorshipToken}"; + } +} diff --git a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUserViewModel.cs b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUserViewModel.cs similarity index 58% rename from src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUserViewModel.cs rename to src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUserViewModel.cs index a547b4f35d..d34e90d972 100644 --- a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToOrgUserViewModel.cs +++ b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToFamilyUserViewModel.cs @@ -1,6 +1,6 @@ namespace Bit.Core.Models.Mail.FamiliesForEnterprise { - public class FamiliesForEnterpriseInviteRedeemedToOrgUserViewModel : BaseMailModel + public class FamiliesForEnterpriseRedeemedToFamilyUserViewModel : BaseMailModel { public string OrganizationName { get; set; } } diff --git a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUserViewModel.cs b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUserViewModel.cs similarity index 57% rename from src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUserViewModel.cs rename to src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUserViewModel.cs index bda9c907cb..53ca9e38f9 100644 --- a/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseInviteRedeemedToFamilyUserViewModel.cs +++ b/src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRedeemedToOrgUserViewModel.cs @@ -1,6 +1,6 @@ namespace Bit.Core.Models.Mail.FamiliesForEnterprise { - public class FamiliesForEnterpriseInviteRedeemedToFamilyUserViewModel : BaseMailModel + public class FamiliesForEnterpriseRedeemedToOrgUserViewModel : BaseMailModel { public string OrganizationName { get; set; } } diff --git a/src/Core/Services/Implementations/HandlebarsMailService.cs b/src/Core/Services/Implementations/HandlebarsMailService.cs index a48b458a07..301f89e1ac 100644 --- a/src/Core/Services/Implementations/HandlebarsMailService.cs +++ b/src/Core/Services/Implementations/HandlebarsMailService.cs @@ -759,30 +759,22 @@ namespace Bit.Core.Services public async Task SendFamiliesForEnterpriseOfferEmailAsync(string email, string organizationName, string token) { - // TODO: Complete emails - var message = CreateDefaultMessage("A Family Organization Invite Is Redeemable", email); + var message = CreateDefaultMessage("Free Bitwarden Family Plan Offer", email); - // NOTE: If somehow cloud vault changes this will need to change/be injected - var url = CoreHelpers.ExtendQuery(new Uri($"https://vault.bitwarden.com/#/sponsored/families-for-enterprise"), - new Dictionary - { - ["sponsorshipToken"] = token, - }); - - var model = new FamiliesForEnterpriseInviteRedeemableViewModel + var model = new FamiliesForEnterpriseOfferViewModel { - Url = url.ToString(), - OrganizationName = organizationName, + WebVaultUrl = _globalSettings.BaseServiceUri.VaultWithHash, + SiteName = _globalSettings.SiteName, + SponsorshipToken = token, }; - await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseInviteRedeemable", model); - message.Category = "FamiliesForEnterpriseInviteRedeemable"; + await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseOffer", model); + message.Category = "FamiliesForEnterpriseOffer"; await _mailDeliveryService.SendEmailAsync(message); } public async Task SendFamiliesForEnterpriseRedeemedEmailsAsync(string familyUserEmail, string sponsorEmail, string sponsorOrgName) { - // TODO: complete emails // Email family user await SendFamiliesForEnterpriseInviteRedeemedToFamilyUserEmailAsync(familyUserEmail); @@ -794,12 +786,12 @@ namespace Bit.Core.Services { // TODO: Complete emails var message = CreateDefaultMessage("You Have Redeemed A Family Organization Sponsorship", email); - var model = new FamiliesForEnterpriseInviteRedeemedToFamilyUserViewModel + var model = new FamiliesForEnterpriseRedeemedToFamilyUserViewModel { }; - await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseInviteRedeemedToFamilyUser", model); - message.Category = "FamilyForEnterpriseInviteRedeemedToFamilyUser"; + await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseRedeemedToFamilyUser", model); + message.Category = "FamilyForEnterpriseRedeemedToFamilyUser"; await _mailDeliveryService.SendEmailAsync(message); } @@ -807,12 +799,12 @@ namespace Bit.Core.Services { // TODO: Complete emails var message = CreateDefaultMessage("A User Has Redeemeed Your Sponsorship", email); - var model = new FamiliesForEnterpriseInviteRedeemedToOrgUserViewModel + var model = new FamiliesForEnterpriseRedeemedToOrgUserViewModel { OrganizationName = organizationName, }; - await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseInviteRedeemedToOrgUser", model); - message.Category = "FamilyForEnterpriseInviteRedeemedToOrgUser"; + await AddMessageContentAsync(message, "FamiliesForEnterprise.FamiliesForEnterpriseRedeemedToOrgUser", model); + message.Category = "FamilyForEnterpriseRedeemedToOrgUser"; await _mailDeliveryService.SendEmailAsync(message); }