mirror of
https://github.com/bitwarden/server
synced 2025-12-11 22:03:38 +00:00
* Add new models * Update repositories * Add new authz handler * Add new query * Add new command * Add authz, command, and query to DI * Add new endpoint to controller * Add query unit tests * Add api unit tests * Add api integration tests
29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
#nullable enable
|
|
using Bit.Api.SecretsManager.Utilities;
|
|
using Bit.Core.SecretsManager.Entities;
|
|
using Bit.Core.SecretsManager.Models.Data;
|
|
|
|
namespace Bit.Api.SecretsManager.Models.Request;
|
|
|
|
public class ProjectServiceAccountsAccessPoliciesRequestModel
|
|
{
|
|
public required IEnumerable<AccessPolicyRequest> ServiceAccountAccessPolicyRequests { get; set; }
|
|
|
|
public ProjectServiceAccountsAccessPolicies ToProjectServiceAccountsAccessPolicies(Project project)
|
|
{
|
|
var serviceAccountAccessPolicies = ServiceAccountAccessPolicyRequests
|
|
.Select(x => x.ToServiceAccountProjectAccessPolicy(project.Id, project.OrganizationId))
|
|
.ToList();
|
|
|
|
AccessPolicyHelpers.CheckForDistinctAccessPolicies(serviceAccountAccessPolicies);
|
|
AccessPolicyHelpers.CheckAccessPoliciesHaveReadPermission(serviceAccountAccessPolicies);
|
|
|
|
return new ProjectServiceAccountsAccessPolicies
|
|
{
|
|
ProjectId = project.Id,
|
|
OrganizationId = project.OrganizationId,
|
|
ServiceAccountAccessPolicies = serviceAccountAccessPolicies
|
|
};
|
|
}
|
|
}
|