mirror of
https://github.com/bitwarden/server.git
synced 2025-07-15 14:47:45 -05:00
[SM-1293] Add endpoint to fetch secret's access policies (#4146)
* Add authz handling for secret access policy reads * Add the ability to fetch secret access polices from the repository * refactor response models * Add new endpoint
This commit is contained in:
@ -12,4 +12,5 @@ public static class SecretOperations
|
||||
public static readonly SecretOperationRequirement Read = new() { Name = nameof(Read) };
|
||||
public static readonly SecretOperationRequirement Update = new() { Name = nameof(Update) };
|
||||
public static readonly SecretOperationRequirement Delete = new() { Name = nameof(Delete) };
|
||||
public static readonly SecretOperationRequirement ReadAccessPolicies = new() { Name = nameof(ReadAccessPolicies) };
|
||||
}
|
||||
|
35
src/Core/SecretsManager/Models/Data/SecretAccessPolicies.cs
Normal file
35
src/Core/SecretsManager/Models/Data/SecretAccessPolicies.cs
Normal file
@ -0,0 +1,35 @@
|
||||
#nullable enable
|
||||
using Bit.Core.SecretsManager.Entities;
|
||||
|
||||
namespace Bit.Core.SecretsManager.Models.Data;
|
||||
|
||||
public class SecretAccessPolicies
|
||||
{
|
||||
public SecretAccessPolicies(Guid secretId, Guid organizationId, List<BaseAccessPolicy> policies)
|
||||
{
|
||||
SecretId = secretId;
|
||||
OrganizationId = organizationId;
|
||||
|
||||
UserAccessPolicies = policies
|
||||
.OfType<UserSecretAccessPolicy>()
|
||||
.ToList();
|
||||
|
||||
GroupAccessPolicies = policies
|
||||
.OfType<GroupSecretAccessPolicy>()
|
||||
.ToList();
|
||||
|
||||
ServiceAccountAccessPolicies = policies
|
||||
.OfType<ServiceAccountSecretAccessPolicy>()
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public SecretAccessPolicies()
|
||||
{
|
||||
}
|
||||
|
||||
public Guid SecretId { get; set; }
|
||||
public Guid OrganizationId { get; set; }
|
||||
public IEnumerable<UserSecretAccessPolicy> UserAccessPolicies { get; set; } = [];
|
||||
public IEnumerable<GroupSecretAccessPolicy> GroupAccessPolicies { get; set; } = [];
|
||||
public IEnumerable<ServiceAccountSecretAccessPolicy> ServiceAccountAccessPolicies { get; set; } = [];
|
||||
}
|
@ -20,4 +20,5 @@ public interface IAccessPolicyRepository
|
||||
Task UpdateServiceAccountGrantedPoliciesAsync(ServiceAccountGrantedPoliciesUpdates policyUpdates);
|
||||
Task<ProjectServiceAccountsAccessPolicies?> GetProjectServiceAccountsAccessPoliciesAsync(Guid projectId);
|
||||
Task UpdateProjectServiceAccountsAccessPoliciesAsync(ProjectServiceAccountsAccessPoliciesUpdates updates);
|
||||
Task<SecretAccessPolicies?> GetSecretAccessPoliciesAsync(Guid secretId, Guid userId);
|
||||
}
|
||||
|
Reference in New Issue
Block a user