mirror of
https://github.com/bitwarden/server.git
synced 2025-04-06 21:48:12 -05:00
invite token is org user based
This commit is contained in:
parent
1404374fb9
commit
4eac3694a3
@ -123,7 +123,7 @@ namespace Bit.Core.Services
|
|||||||
|
|
||||||
await _organizationUserRepository.CreateAsync(orgUser);
|
await _organizationUserRepository.CreateAsync(orgUser);
|
||||||
await SaveUserSubvaultsAsync(orgUser, subvaults, true);
|
await SaveUserSubvaultsAsync(orgUser, subvaults, true);
|
||||||
await SendInviteAsync(organizationId, email);
|
await SendInviteAsync(orgUser);
|
||||||
|
|
||||||
return orgUser;
|
return orgUser;
|
||||||
}
|
}
|
||||||
@ -142,15 +142,15 @@ namespace Bit.Core.Services
|
|||||||
throw new BadRequestException("User invalid.");
|
throw new BadRequestException("User invalid.");
|
||||||
}
|
}
|
||||||
|
|
||||||
await SendInviteAsync(organizationId, orgUser.Email);
|
await SendInviteAsync(orgUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SendInviteAsync(Guid organizationId, string email)
|
private async Task SendInviteAsync(OrganizationUser orgUser)
|
||||||
{
|
{
|
||||||
|
var nowMillis = CoreHelpers.ToEpocMilliseconds(DateTime.UtcNow);
|
||||||
var token = _dataProtector.Protect(
|
var token = _dataProtector.Protect(
|
||||||
$"OrganizationInvite {organizationId} {email} {CoreHelpers.ToEpocMilliseconds(DateTime.UtcNow)}");
|
$"OrganizationUserInvite {orgUser.Id} {orgUser.Email} {nowMillis}");
|
||||||
|
await _mailService.SendOrganizationInviteEmailAsync("Organization Name", orgUser.Email, token);
|
||||||
await _mailService.SendOrganizationInviteEmailAsync("Organization Name", email, token);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<OrganizationUser> AcceptUserAsync(Guid organizationUserId, User user, string token)
|
public async Task<OrganizationUser> AcceptUserAsync(Guid organizationUserId, User user, string token)
|
||||||
@ -171,8 +171,8 @@ namespace Bit.Core.Services
|
|||||||
{
|
{
|
||||||
var unprotectedData = _dataProtector.Unprotect(token);
|
var unprotectedData = _dataProtector.Unprotect(token);
|
||||||
var dataParts = unprotectedData.Split(' ');
|
var dataParts = unprotectedData.Split(' ');
|
||||||
if(dataParts.Length == 4 && dataParts[0] == "OrganizationInvite" &&
|
if(dataParts.Length == 4 && dataParts[0] == "OrganizationUserInvite" &&
|
||||||
new Guid(dataParts[1]) == orgUser.OrganizationId && dataParts[2] == user.Email)
|
new Guid(dataParts[1]) == orgUser.Id && dataParts[2] == user.Email)
|
||||||
{
|
{
|
||||||
var creationTime = CoreHelpers.FromEpocMilliseconds(Convert.ToInt64(dataParts[3]));
|
var creationTime = CoreHelpers.FromEpocMilliseconds(Convert.ToInt64(dataParts[3]));
|
||||||
tokenValidationFailed = creationTime.AddDays(5) < DateTime.UtcNow;
|
tokenValidationFailed = creationTime.AddDays(5) < DateTime.UtcNow;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user