1
0
mirror of https://github.com/bitwarden/server synced 2025-12-11 22:03:38 +00:00
Files
server/src/Api/SecretsManager/Models/Request/ProjectServiceAccountsAccessPoliciesRequestModel.cs
Thomas Avery 7f8cea58d0 [SM-923] Add project service accounts access policies management endpoints (#3993)
* 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
2024-05-02 11:06:20 -05:00

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
};
}
}