Browse Source

org re-invite api

pull/581/head
Kyle Spearrin 7 years ago
parent
commit
72750cf298
  1. 22
      src/Api/Public/Controllers/MembersController.cs
  2. 2
      src/Core/Services/IOrganizationService.cs
  3. 2
      src/Core/Services/Implementations/OrganizationService.cs

22
src/Api/Public/Controllers/MembersController.cs

@ -203,5 +203,27 @@ namespace Bit.Api.Public.Controllers @@ -203,5 +203,27 @@ namespace Bit.Api.Public.Controllers
await _organizationService.DeleteUserAsync(_currentContext.OrganizationId.Value, id, null);
return new OkResult();
}
/// <summary>
/// Re-invite a member.
/// </summary>
/// <remarks>
/// Re-sends the invitation email to an organization member.
/// </remarks>
/// <param name="id">The identifier of the member to re-invite.</param>
[HttpPost("{id}/reinvite")]
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType(typeof(ErrorResponseModel), (int)HttpStatusCode.BadRequest)]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
public async Task<IActionResult> PostReinvite(Guid id)
{
var existingUser = await _organizationUserRepository.GetByIdAsync(id);
if(existingUser == null || existingUser.OrganizationId != _currentContext.OrganizationId)
{
return new NotFoundResult();
}
await _organizationService.ResendInviteAsync(_currentContext.OrganizationId.Value, null, id);
return new OkResult();
}
}
}

2
src/Core/Services/IOrganizationService.cs

@ -33,7 +33,7 @@ namespace Bit.Core.Services @@ -33,7 +33,7 @@ namespace Bit.Core.Services
OrganizationUserType type, bool accessAll, string externalId, IEnumerable<SelectionReadOnly> collections);
Task<List<OrganizationUser>> InviteUserAsync(Guid organizationId, Guid? invitingUserId, IEnumerable<string> emails,
OrganizationUserType type, bool accessAll, string externalId, IEnumerable<SelectionReadOnly> collections);
Task ResendInviteAsync(Guid organizationId, Guid invitingUserId, Guid organizationUserId);
Task ResendInviteAsync(Guid organizationId, Guid? invitingUserId, Guid organizationUserId);
Task<OrganizationUser> AcceptUserAsync(Guid organizationUserId, User user, string token);
Task<OrganizationUser> ConfirmUserAsync(Guid organizationId, Guid organizationUserId, string key, Guid confirmingUserId);
Task SaveUserAsync(OrganizationUser user, Guid? savingUserId, IEnumerable<SelectionReadOnly> collections);

2
src/Core/Services/Implementations/OrganizationService.cs

@ -914,7 +914,7 @@ namespace Bit.Core.Services @@ -914,7 +914,7 @@ namespace Bit.Core.Services
return orgUsers;
}
public async Task ResendInviteAsync(Guid organizationId, Guid invitingUserId, Guid organizationUserId)
public async Task ResendInviteAsync(Guid organizationId, Guid? invitingUserId, Guid organizationUserId)
{
var orgUser = await _organizationUserRepository.GetByIdAsync(organizationUserId);
if(orgUser == null || orgUser.OrganizationId != organizationId ||

Loading…
Cancel
Save