public async Task CompleteSetupAsync(Provider provider, Guid ownerUserId, string token, string key) { var owner = await _userService.GetUserByIdAsync(ownerUserId); if (owner == null) { throw new BadRequestException("Invalid owner."); } if (!CoreHelpers.TokenIsValid("ProviderSetupInvite", _dataProtector, token, owner.Email, provider.Id, _globalSettings)) { throw new BadRequestException("Invalid token."); } await _providerRepository.UpsertAsync(provider); var providerUser = new ProviderUser { ProviderId = provider.Id, UserId = owner.Id, Key = key, Status = ProviderUserStatusType.Confirmed, Type = ProviderUserType.ProviderAdmin, }; await _providerUserRepository.CreateAsync(providerUser); }
public async Task CreateAsync(string ownerEmail) { var owner = await _userRepository.GetByEmailAsync(ownerEmail); if (owner == null) { throw new BadRequestException("Invalid owner. Owner must be an existing Bitwarden user."); } var provider = new Provider { Status = ProviderStatusType.Pending, Enabled = true, UseEvents = true, }; await _providerRepository.CreateAsync(provider); var providerUser = new ProviderUser { ProviderId = provider.Id, UserId = owner.Id, Type = ProviderUserType.ProviderAdmin, Status = ProviderUserStatusType.Confirmed, }; await _providerUserRepository.CreateAsync(providerUser); await SendProviderSetupInviteEmailAsync(provider, owner.Email); }
public async Task CreateAsync(string ownerEmail) { var owner = await _userRepository.GetByEmailAsync(ownerEmail); if (owner == null) { throw new BadRequestException("Invalid owner."); } var provider = new Provider { Status = ProviderStatusType.Pending, Enabled = true, }; await _providerRepository.CreateAsync(provider); var providerUser = new ProviderUser { ProviderId = provider.Id, UserId = owner.Id, Type = ProviderUserType.ProviderAdmin, Status = ProviderUserStatusType.Confirmed, }; await _providerUserRepository.CreateAsync(providerUser); var token = _dataProtector.Protect($"ProviderSetupInvite {provider.Id} {owner.Email} {CoreHelpers.ToEpocMilliseconds(DateTime.UtcNow)}"); await _mailService.SendProviderSetupInviteEmailAsync(provider, token, owner.Email); }