1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-02 16:42:50 -05:00

Organization User Accepted Invite Email Notifications (#1465)

This commit is contained in:
Addison Beck
2021-07-16 13:49:27 -04:00
committed by GitHub
parent 7abb053914
commit 5ec37b96b4
12 changed files with 99 additions and 16 deletions

View File

@ -19,7 +19,7 @@ namespace Bit.Core.Services
Task SendMasterPasswordHintEmailAsync(string email, string hint);
Task SendOrganizationInviteEmailAsync(string organizationName, OrganizationUser orgUser, string token);
Task BulkSendOrganizationInviteEmailAsync(string organizationName, IEnumerable<(OrganizationUser orgUser, string token)> invites);
Task SendOrganizationAcceptedEmailAsync(string organizationName, string userEmail,
Task SendOrganizationAcceptedEmailAsync(Organization organization, string userIdentifier,
IEnumerable<string> adminEmails);
Task SendOrganizationConfirmedEmailAsync(string organizationName, string email);
Task SendOrganizationUserRemovedForPolicyTwoStepEmailAsync(string organizationName, string email);

View File

@ -143,14 +143,15 @@ namespace Bit.Core.Services
await _mailDeliveryService.SendEmailAsync(message);
}
public async Task SendOrganizationAcceptedEmailAsync(string organizationName, string userEmail,
public async Task SendOrganizationAcceptedEmailAsync(Organization organization, string userIdentifier,
IEnumerable<string> adminEmails)
{
var message = CreateDefaultMessage($"User {userEmail} Has Accepted Invite", adminEmails);
var message = CreateDefaultMessage($"Action Required: {userIdentifier} Needs to Be Confirmed", adminEmails);
var model = new OrganizationUserAcceptedViewModel
{
OrganizationName = CoreHelpers.SanitizeForEmail(organizationName),
UserEmail = userEmail,
OrganizationId = organization.Id,
OrganizationName = CoreHelpers.SanitizeForEmail(organization.Name),
UserIdentifier = userIdentifier,
WebVaultUrl = _globalSettings.BaseServiceUri.VaultWithHash,
SiteName = _globalSettings.SiteName
};

View File

@ -1424,7 +1424,10 @@ namespace Bit.Core.Services
await _organizationUserRepository.ReplaceAsync(orgUser);
// TODO: send notification emails to org admins and accepting user?
await _mailService.SendOrganizationAcceptedEmailAsync(
(await _organizationRepository.GetByIdAsync(orgUser.OrganizationId)),
user.Email,
(await _organizationUserRepository.GetManyByMinimumRoleAsync(orgUser.OrganizationId, OrganizationUserType.Admin)).Select(a => a.Email).Distinct());
return orgUser;
}

View File

@ -34,7 +34,7 @@ namespace Bit.Core.Services
return Task.FromResult(0);
}
public Task SendOrganizationAcceptedEmailAsync(string organizationName, string userEmail, IEnumerable<string> adminEmails)
public Task SendOrganizationAcceptedEmailAsync(Organization organization, string userIdentifier, IEnumerable<string> adminEmails)
{
return Task.FromResult(0);
}