-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into feature/sm-billing-round-2
# Conflicts: # src/Api/SecretsManager/Controllers/ServiceAccountsController.cs
- Loading branch information
Showing
19 changed files
with
253 additions
and
53 deletions.
There are no files selected for viewing
36 changes: 36 additions & 0 deletions
36
...mmercial.Core/SecretsManager/Queries/ServiceAccounts/ServiceAccountSecretsDetailsQuery.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using Bit.Core.Enums; | ||
using Bit.Core.SecretsManager.Models.Data; | ||
using Bit.Core.SecretsManager.Queries.ServiceAccounts.Interfaces; | ||
using Bit.Core.SecretsManager.Repositories; | ||
|
||
namespace Bit.Commercial.Core.SecretsManager.Queries.ServiceAccounts; | ||
|
||
public class ServiceAccountSecretsDetailsQuery : IServiceAccountSecretsDetailsQuery | ||
{ | ||
private readonly IServiceAccountRepository _serviceAccountRepository; | ||
|
||
public ServiceAccountSecretsDetailsQuery(IServiceAccountRepository serviceAccountRepository) | ||
{ | ||
_serviceAccountRepository = serviceAccountRepository; | ||
} | ||
|
||
public async Task<IEnumerable<ServiceAccountSecretsDetails>> GetManyByOrganizationIdAsync( | ||
Guid organizationId, Guid userId, AccessClientType accessClient, bool includeAccessToSecrets) | ||
{ | ||
if (includeAccessToSecrets) | ||
{ | ||
return await _serviceAccountRepository.GetManyByOrganizationIdWithSecretsDetailsAsync(organizationId, | ||
userId, | ||
accessClient); | ||
} | ||
|
||
var serviceAccounts = | ||
await _serviceAccountRepository.GetManyByOrganizationIdAsync(organizationId, userId, accessClient); | ||
|
||
return serviceAccounts.Select(sa => new ServiceAccountSecretsDetails | ||
{ | ||
ServiceAccount = sa, | ||
AccessToSecrets = 0, | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
...ore.Test/SecretsManager/Queries/ServiceAccounts/ServiceAccountSecretsDetailsQueryTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
using Bit.Commercial.Core.SecretsManager.Queries.ServiceAccounts; | ||
using Bit.Core.Enums; | ||
using Bit.Core.SecretsManager.Entities; | ||
using Bit.Core.SecretsManager.Models.Data; | ||
using Bit.Core.SecretsManager.Repositories; | ||
using Bit.Test.Common.AutoFixture; | ||
using Bit.Test.Common.AutoFixture.Attributes; | ||
using Bit.Test.Common.Helpers; | ||
using NSubstitute; | ||
using Xunit; | ||
|
||
namespace Bit.Commercial.Core.Test.SecretsManager.Queries.ServiceAccounts; | ||
|
||
[SutProviderCustomize] | ||
public class ServiceAccountSecretsDetailsQueryTests | ||
{ | ||
[Theory] | ||
[BitAutoData(false)] | ||
[BitAutoData(true)] | ||
public async Task GetManyByOrganizationId_CallsDifferentRepoMethods( | ||
bool includeAccessToSecrets, | ||
SutProvider<ServiceAccountSecretsDetailsQuery> sutProvider, | ||
Guid organizationId, | ||
Guid userId, | ||
AccessClientType accessClient, | ||
ServiceAccount mockSa, | ||
ServiceAccountSecretsDetails mockSaDetails) | ||
{ | ||
sutProvider.GetDependency<IServiceAccountRepository>().GetManyByOrganizationIdAsync(default, default, default) | ||
.ReturnsForAnyArgs(new List<ServiceAccount> { mockSa }); | ||
|
||
sutProvider.GetDependency<IServiceAccountRepository>().GetManyByOrganizationIdWithSecretsDetailsAsync(default, default, default) | ||
.ReturnsForAnyArgs(new List<ServiceAccountSecretsDetails> { mockSaDetails }); | ||
|
||
|
||
var result = await sutProvider.Sut.GetManyByOrganizationIdAsync(organizationId, userId, accessClient, includeAccessToSecrets); | ||
|
||
if (includeAccessToSecrets) | ||
{ | ||
await sutProvider.GetDependency<IServiceAccountRepository>().Received(1) | ||
.GetManyByOrganizationIdWithSecretsDetailsAsync(Arg.Is(AssertHelper.AssertPropertyEqual(mockSaDetails.ServiceAccount.OrganizationId)), | ||
Arg.Any<Guid>(), Arg.Any<AccessClientType>()); | ||
} | ||
else | ||
{ | ||
await sutProvider.GetDependency<IServiceAccountRepository>().Received(1) | ||
.GetManyByOrganizationIdAsync(Arg.Is(AssertHelper.AssertPropertyEqual(mockSa.OrganizationId)), | ||
Arg.Any<Guid>(), Arg.Any<AccessClientType>()); | ||
Assert.Equal(0, result.First().AccessToSecrets); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9 changes: 9 additions & 0 deletions
9
src/Core/SecretsManager/Models/Data/ServiceAccountSecretsDetails.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
using Bit.Core.SecretsManager.Entities; | ||
|
||
namespace Bit.Core.SecretsManager.Models.Data; | ||
|
||
public class ServiceAccountSecretsDetails | ||
{ | ||
public ServiceAccount ServiceAccount { get; set; } | ||
public int AccessToSecrets { get; set; } | ||
} |
10 changes: 10 additions & 0 deletions
10
...e/SecretsManager/Queries/ServiceAccounts/Interfaces/IServiceAccountSecretsDetailsQuery.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
using Bit.Core.Enums; | ||
using Bit.Core.SecretsManager.Models.Data; | ||
|
||
namespace Bit.Core.SecretsManager.Queries.ServiceAccounts.Interfaces; | ||
|
||
public interface IServiceAccountSecretsDetailsQuery | ||
{ | ||
public Task<IEnumerable<ServiceAccountSecretsDetails>> GetManyByOrganizationIdAsync( | ||
Guid organizationId, Guid userId, AccessClientType accessClient, bool includeAccessToSecrets); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.