mirror of
https://github.com/bitwarden/server.git
synced 2025-04-29 08:42:19 -05:00

* Add autoscale fields to Organization * Add autoscale setting changes * Autoscale organizations updates InviteUsersAsync to support all invite sources. sends an email to org owners when organization autoscaled * All organizations autoscale Disabling autoscaling can be done by setting max seats to current seats. We only warn about autoscaling on the first autoscaling event. * Fix tests * Bug fixes * Simplify subscription update logic * Void invoices that fail to delete Stripe no longer allows deletion of draft invoices that were created as part of subscription updates. It's necessary to void out these invoices without sending tem to the client. * Notify org owners when their subscription runs out of seats * Use datetime for notifications Allows for later re-sending email if we want to periodically remind owners * Do not update subscription if it already matches new quatity * Include all migrations * Remove unnecessary inline styling * SubscriptionUpdate handles update decisions * Remove unnecessary html setter * PR review * Use minimum access for class methods
54 lines
3.9 KiB
C#
54 lines
3.9 KiB
C#
using System.Threading.Tasks;
|
|
using Bit.Core.Models.Table;
|
|
using System.Collections.Generic;
|
|
using System;
|
|
using Bit.Core.Models.Mail;
|
|
using Bit.Core.Models.Table.Provider;
|
|
using Bit.Core.Models.Business;
|
|
|
|
namespace Bit.Core.Services
|
|
{
|
|
public interface IMailService
|
|
{
|
|
Task SendWelcomeEmailAsync(User user);
|
|
Task SendVerifyEmailEmailAsync(string email, Guid userId, string token);
|
|
Task SendVerifyDeleteEmailAsync(string email, Guid userId, string token);
|
|
Task SendChangeEmailAlreadyExistsEmailAsync(string fromEmail, string toEmail);
|
|
Task SendChangeEmailEmailAsync(string newEmailAddress, string token);
|
|
Task SendTwoFactorEmailAsync(string email, string token);
|
|
Task SendNoMasterPasswordHintEmailAsync(string email);
|
|
Task SendMasterPasswordHintEmailAsync(string email, string hint);
|
|
Task SendOrganizationInviteEmailAsync(string organizationName, OrganizationUser orgUser, ExpiringToken token);
|
|
Task BulkSendOrganizationInviteEmailAsync(string organizationName, IEnumerable<(OrganizationUser orgUser, ExpiringToken token)> invites);
|
|
Task SendOrganizationMaxSeatLimitReachedEmailAsync(Organization organization, int maxSeatCount, IEnumerable<string> ownerEmails);
|
|
Task SendOrganizationAutoscaledEmailAsync(Organization organization, int initialSeatCount, IEnumerable<string> ownerEmails);
|
|
Task SendOrganizationAcceptedEmailAsync(Organization organization, string userIdentifier, IEnumerable<string> adminEmails);
|
|
Task SendOrganizationConfirmedEmailAsync(string organizationName, string email);
|
|
Task SendOrganizationUserRemovedForPolicyTwoStepEmailAsync(string organizationName, string email);
|
|
Task SendPasswordlessSignInAsync(string returnUrl, string token, string email);
|
|
Task SendInvoiceUpcomingAsync(string email, decimal amount, DateTime dueDate, List<string> items,
|
|
bool mentionInvoices);
|
|
Task SendPaymentFailedAsync(string email, decimal amount, bool mentionInvoices);
|
|
Task SendAddedCreditAsync(string email, decimal amount);
|
|
Task SendLicenseExpiredAsync(IEnumerable<string> emails, string organizationName = null);
|
|
Task SendNewDeviceLoggedInEmail(string email, string deviceType, DateTime timestamp, string ip);
|
|
Task SendRecoverTwoFactorEmail(string email, DateTime timestamp, string ip);
|
|
Task SendOrganizationUserRemovedForPolicySingleOrgEmailAsync(string organizationName, string email);
|
|
Task SendEmergencyAccessInviteEmailAsync(EmergencyAccess emergencyAccess, string name, string token);
|
|
Task SendEmergencyAccessAcceptedEmailAsync(string granteeEmail, string email);
|
|
Task SendEmergencyAccessConfirmedEmailAsync(string grantorName, string email);
|
|
Task SendEmergencyAccessRecoveryInitiated(EmergencyAccess emergencyAccess, string initiatingName, string email);
|
|
Task SendEmergencyAccessRecoveryApproved(EmergencyAccess emergencyAccess, string approvingName, string email);
|
|
Task SendEmergencyAccessRecoveryRejected(EmergencyAccess emergencyAccess, string rejectingName, string email);
|
|
Task SendEmergencyAccessRecoveryReminder(EmergencyAccess emergencyAccess, string initiatingName, string email);
|
|
Task SendEmergencyAccessRecoveryTimedOut(EmergencyAccess ea, string initiatingName, string email);
|
|
Task SendEnqueuedMailMessageAsync(IMailQueueMessage queueMessage);
|
|
Task SendAdminResetPasswordEmailAsync(string email, string userName, string orgName);
|
|
Task SendProviderSetupInviteEmailAsync(Provider provider, string token, string email);
|
|
Task SendProviderInviteEmailAsync(string providerName, ProviderUser providerUser, string token, string email);
|
|
Task SendProviderConfirmedEmailAsync(string providerName, string email);
|
|
Task SendProviderUserRemoved(string providerName, string email);
|
|
Task SendUpdatedTempPasswordEmailAsync(string email, string userName);
|
|
}
|
|
}
|