|
|
|
|
@ -248,8 +248,7 @@ namespace Bit.Core.Services
@@ -248,8 +248,7 @@ namespace Bit.Core.Services
|
|
|
|
|
{ |
|
|
|
|
var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); |
|
|
|
|
|
|
|
|
|
if (emergencyAccess == null || emergencyAccess.GranteeId != requestingUser.Id || |
|
|
|
|
emergencyAccess.Status != EmergencyAccessStatusType.RecoveryApproved) |
|
|
|
|
if (!IsValidRequest(emergencyAccess, requestingUser, EmergencyAccessType.Takeover)) |
|
|
|
|
{ |
|
|
|
|
throw new BadRequestException("Emergency Access not valid."); |
|
|
|
|
} |
|
|
|
|
@ -267,8 +266,7 @@ namespace Bit.Core.Services
@@ -267,8 +266,7 @@ namespace Bit.Core.Services
|
|
|
|
|
{ |
|
|
|
|
var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); |
|
|
|
|
|
|
|
|
|
if (emergencyAccess == null || emergencyAccess.GranteeId != requestingUser.Id || |
|
|
|
|
emergencyAccess.Status != EmergencyAccessStatusType.RecoveryApproved) |
|
|
|
|
if (!IsValidRequest(emergencyAccess, requestingUser, EmergencyAccessType.Takeover)) |
|
|
|
|
{ |
|
|
|
|
throw new BadRequestException("Emergency Access not valid."); |
|
|
|
|
} |
|
|
|
|
@ -282,8 +280,7 @@ namespace Bit.Core.Services
@@ -282,8 +280,7 @@ namespace Bit.Core.Services
|
|
|
|
|
{ |
|
|
|
|
var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); |
|
|
|
|
|
|
|
|
|
if (emergencyAccess == null || emergencyAccess.GranteeId != requestingUser.Id || |
|
|
|
|
emergencyAccess.Status != EmergencyAccessStatusType.RecoveryApproved) |
|
|
|
|
if (!IsValidRequest(emergencyAccess, requestingUser, EmergencyAccessType.Takeover)) |
|
|
|
|
{ |
|
|
|
|
throw new BadRequestException("Emergency Access not valid."); |
|
|
|
|
} |
|
|
|
|
@ -340,8 +337,7 @@ namespace Bit.Core.Services
@@ -340,8 +337,7 @@ namespace Bit.Core.Services
|
|
|
|
|
{ |
|
|
|
|
var emergencyAccess = await _emergencyAccessRepository.GetByIdAsync(id); |
|
|
|
|
|
|
|
|
|
if (emergencyAccess == null || emergencyAccess.GranteeId != requestingUser.Id || |
|
|
|
|
emergencyAccess.Status != EmergencyAccessStatusType.RecoveryApproved) |
|
|
|
|
if (!IsValidRequest(emergencyAccess, requestingUser, EmergencyAccessType.View)) |
|
|
|
|
{ |
|
|
|
|
throw new BadRequestException("Emergency Access not valid."); |
|
|
|
|
} |
|
|
|
|
@ -362,5 +358,12 @@ namespace Bit.Core.Services
@@ -362,5 +358,12 @@ namespace Bit.Core.Services
|
|
|
|
|
{ |
|
|
|
|
return string.IsNullOrWhiteSpace(user.Name) ? user.Email : user.Name; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private bool IsValidRequest(EmergencyAccess availibleAccess, User requestingUser, EmergencyAccessType requestedAccessType) { |
|
|
|
|
return availibleAccess != null && |
|
|
|
|
availibleAccess.GranteeId == requestingUser.Id && |
|
|
|
|
availibleAccess.Status == EmergencyAccessStatusType.RecoveryApproved && |
|
|
|
|
availibleAccess.Type == requestedAccessType; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|