mirror of
https://github.com/bitwarden/server.git
synced 2025-04-05 13:08:17 -05:00
66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
#nullable enable
|
|
using Bit.Core.AdminConsole.Entities;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Utilities;
|
|
|
|
namespace Bit.Core.SecretsManager.Entities;
|
|
|
|
public abstract class BaseAccessPolicy
|
|
{
|
|
public Guid Id { get; set; }
|
|
|
|
// Access
|
|
public bool Read { get; set; }
|
|
public bool Write { get; set; }
|
|
|
|
public DateTime CreationDate { get; set; } = DateTime.UtcNow;
|
|
public DateTime RevisionDate { get; set; } = DateTime.UtcNow;
|
|
|
|
public void SetNewId()
|
|
{
|
|
Id = CoreHelpers.GenerateComb();
|
|
}
|
|
}
|
|
|
|
public class UserProjectAccessPolicy : BaseAccessPolicy
|
|
{
|
|
public Guid? OrganizationUserId { get; set; }
|
|
public User? User { get; set; }
|
|
public Guid? GrantedProjectId { get; set; }
|
|
public Project? GrantedProject { get; set; }
|
|
}
|
|
|
|
public class UserServiceAccountAccessPolicy : BaseAccessPolicy
|
|
{
|
|
public Guid? OrganizationUserId { get; set; }
|
|
public User? User { get; set; }
|
|
public Guid? GrantedServiceAccountId { get; set; }
|
|
public ServiceAccount? GrantedServiceAccount { get; set; }
|
|
}
|
|
|
|
public class GroupProjectAccessPolicy : BaseAccessPolicy
|
|
{
|
|
public Guid? GroupId { get; set; }
|
|
public Group? Group { get; set; }
|
|
public bool? CurrentUserInGroup { get; set; }
|
|
public Guid? GrantedProjectId { get; set; }
|
|
public Project? GrantedProject { get; set; }
|
|
}
|
|
|
|
public class GroupServiceAccountAccessPolicy : BaseAccessPolicy
|
|
{
|
|
public Guid? GroupId { get; set; }
|
|
public Group? Group { get; set; }
|
|
public bool? CurrentUserInGroup { get; set; }
|
|
public Guid? GrantedServiceAccountId { get; set; }
|
|
public ServiceAccount? GrantedServiceAccount { get; set; }
|
|
}
|
|
|
|
public class ServiceAccountProjectAccessPolicy : BaseAccessPolicy
|
|
{
|
|
public Guid? ServiceAccountId { get; set; }
|
|
public ServiceAccount? ServiceAccount { get; set; }
|
|
public Guid? GrantedProjectId { get; set; }
|
|
public Project? GrantedProject { get; set; }
|
|
}
|